javascript闭包与变量
来源:互联网 发布:linux特殊字符$? 编辑:程序博客网 时间:2024/06/14 16:11
一、闭包的定义
1.闭包是指有权访问另一个函数作用域中的变量的函数。2.作用域链的配置机制引出了一个值得注意的副作用,即闭包只能取得包含函数中任何变量的最后一个值,因为闭包保存的是整个变量的对象,而不是某个特殊变量。
二、闭包的副作用
function countNumbers(){ var result = new Array(); for(var i=0;i<10;i++){ result[i] = function(){ return i; }; } return result;}
1.表面上看,似乎每个函数都正确的返回了自己的索引值,即位置0的函数返回0,位置1的函数返回1。但实际上,每个函数都返回的是10,因为每个函数的作用于链中保存的都是countNumbers()函数的活动对象,所以它们是引用的同一个变量i。
三、改变闭包传值问题
1.闭包只能访问变量的最后一个值的问题一直困扰着我们,我们可以通过创建匿名函数强制让闭包的行为符合预期结果,例:function countNumbers(){ var result = new Array(); for(var i=0;i<10;i++){ result[i]=function(num){ return fucntion(){ return num; } }(i); } return result;}
0 0
- javascript闭包与变量
- JavaScript闭包与私有变量
- javascript理解之变量作用域与闭包
- javascript中的局部变量、全局变量与闭包
- javascript理解之变量作用域与闭包
- 闭包与变量
- 闭包与变量
- 闭包与变量
- 闭包与变量
- js闭包与变量
- JS闭包与变量
- 深入Javascript函数与闭包(执行环境、变量对象与作用域链)详解
- 深入Javascript函数与闭包(执行环境、变量对象与作用域链)使用详解
- JavaScript 变量作用域及闭包
- JavaScript中的变量和闭包
- javascript 闭包 变量释放GC 测试
- JavaScript闭包作用域变量问题
- javascript的闭包和变量
- BIEE
- 欢迎使用CSDN-markdown编辑器
- 关于回调函数
- Genymotion 6.0 ARM-Translation
- 3331数据结构实验之链表八:Farey序列
- javascript闭包与变量
- Python (十二)模块
- eclipse for java ee 之JUnit使用
- Spring的XML解析中关于DTD的路径问题
- Python程序猿必备的10个开发技巧
- 【xplan】创建存储提纲稳定执行计划
- 383. Ransom Note
- elasticsearch-查询基础篇
- 江湖人物之滴滴打车张博