javascript学习之闭包分析

 更新时间:2010年12月02日 15:41:45   作者:  
闭包,指的是词法表示包括不被计算的变量的函数,也就是说,函数可以使用函数之外定义的变量。

在ECMAScript中,在函数声明处向函数外部看到的声明的所有变量,在函数内部都能访问到它们的最终值

闭包函数只能访问变量的最终值!!!

eg: 

function fnTest(arr) {
    for (var i=0;i < arr.length;i++) {
    arr[i]=function () { alert(i+" | "+arr[i]); };
    }
 }
 var arr = [0,1,2,3];
 fnTest(arr);
 for (var i=0;i < arr.length;i++) {
  arr[i]();   //始终输出4还有一个undefined因为函数退出后,i值为4,所以访问到的值只有4

//结果会连续弹出4个"4|undefined”
 }

 不但在闭包中可以访问闭包外的变量值,而且还可以设置它的值

eg:

 function fnTest() {
    var a="June";
    return {
     set:function (param) {a = param},
     get:function () {return a}
    };
 }
 var obj = fnTest();
 alert(obj.get());//弹出June

 obj.set(586);
 alert(obj.get());//弹出586 

相关文章

  • UniApp与WebView双向通信及数据传输超详细讲解

    UniApp与WebView双向通信及数据传输超详细讲解

    这篇文章主要介绍了UniApp与WebView双向通信及数据传输的相关资料,详细讲解了UniApp与WebView的通信原理、方法对比、数据传输实战、调试技巧、性能优化策略及技术风险控制,通过合理选型和优化,需要的朋友可以参考下
    2025-04-04
  • 微信小程序的引导页实现代码

    微信小程序的引导页实现代码

    这篇文章主要介绍了微信小程序的引导页实现代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • uni-app实现全局水印示例详解

    uni-app实现全局水印示例详解

    这篇文章主要为大家介绍了uni-app实现全局水印示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • JavaScript实现动态删除列表框值的方法

    JavaScript实现动态删除列表框值的方法

    这篇文章主要介绍了JavaScript实现动态删除列表框值的方法,涉及javascript针对select列表框的遍历与删除操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • js实现截取某个字符串前面的内容

    js实现截取某个字符串前面的内容

    这篇文章主要介绍了js实现截取某个字符串前面的内容,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • 如何基于原生javaScript生成带图片的二维码

    如何基于原生javaScript生成带图片的二维码

    这篇文章主要介绍了如何基于原生javaScript生成带图片的二维码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • JavaScript利用多彩线条摆出心形效果的示例代码

    JavaScript利用多彩线条摆出心形效果的示例代码

    这篇文章主要为大家详细介绍了如何利用JavaScript语言实现多彩线条摆出心形效果,文中的实现步骤讲解详细,快跟随小编一起动手尝试一下吧
    2022-07-07
  • HTML中不支持静态Expando的元素的问题

    HTML中不支持静态Expando的元素的问题

    HTML中不支持静态Expando的元素的问题...
    2007-03-03
  • js获取class的所有元素

    js获取class的所有元素

    ie不支持getElementsByClassName,所以要自己实现获取类名为className的所有元素。
    2013-03-03
  • BootStrap 智能表单实战系列(五) 表单依赖插件处理

    BootStrap 智能表单实战系列(五) 表单依赖插件处理

    这篇文章主要介绍了BootStrap 智能表单实战系列(五) 表单依赖插件处理 的相关资料,比较简单,主要介绍生产表单元素后的一些后续处理操作,非常不错具有参考借鉴价值,感兴趣的朋友一起看看吧
    2016-06-06

最新评论