js闭包个人理解--to be continued
2016-05-03 21:51
344 查看
1、闭包:在一个函数内部的匿名函数,不管前面有没有return,都可以看做是一个闭包
2、闭包只能取得包含函数中任何变量的最后一个值,因为闭包所保存的是整个变量对象。
如:function createF(){
var res=[];
for(var i=0;i<10;i++){
res[i]=function(){ return i;}
}
return res;
}
此时返回的是一个数组,数组元素都是10.解决这种问题的方法就是使用匿名包装器,
res[i]=function(num){
return function(){
return num;
};
}(i);
2、闭包只能取得包含函数中任何变量的最后一个值,因为闭包所保存的是整个变量对象。
如:function createF(){
var res=[];
for(var i=0;i<10;i++){
res[i]=function(){ return i;}
}
return res;
}
此时返回的是一个数组,数组元素都是10.解决这种问题的方法就是使用匿名包装器,
res[i]=function(num){
return function(){
return num;
};
}(i);
相关文章推荐
- 将属性文件以key-value值形式输出的工具类
- StringBuilder 和StringBuffer 的区别
- 提取classes中properties的value(JAVA)
- UVA 11404 Palindromic Subsequence LCS
- 类型化和泛型化的 Table View Controller
- HashTable 和 HashMap的区别 StringBuffer 和Builder的区别
- fetchxml分页和QueryExpression分页
- 山东省第四届ACM省赛 A SDUT 2603 Rescue The Princess(简单数学题)
- java StringBuilder类的常用方法
- HDU 4740 The Donkey of Gui Zhou
- [leetcode] 347. Top K Frequent Elements
- [leetcode]Longest Increasing Subsequence
- LeetCode OJ 95. Unique Binary Search Trees II
- 关于UIView上添加一个手势,导致子视图为UIButton的无法响应
- requests中文文档
- 贝塞尔曲线 UIBezierPath
- iOS学习笔记-----UITextField与UITextView属性与方法
- 对指定UI控件进行指定截屏
- require.js的用法
- iOS xib创建UIScrollView不滑动问题解决