作家
登录

javascript学习之闭包分析

作者: 来源:www.28hudong.com 2013-03-30 01:07:51 阅读 我要评论

在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

  推荐阅读

  统计出现最多的字符次数的js代码

应用正则表达式的全局匹配,可以匹配出字符出现的次数,比较这些次数,将最大的保存并返回。代码如下: 复制代码 代码如下: var countMost = function(str){ if(!str) return; var _count = 0, _temp = 0, _reg, _>>>详细阅读


本文标题:javascript学习之闭包分析

地址:http://www.17bianji.com/kaifa2/JS/25266.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)