关于闭包的学习

来源:互联网 发布:php 斗牛算法 编辑:程序博客网 时间:2024/06/04 19:36

第一,什么是闭包,闭包就是在一个函数的内部定义另一个函数.
第二,它的格式是什么:
function outer(){
var innernum = outernum;
function inner(){
return innernum;
}
return inner;
}
外部是无法防问到内部变量innernum,所以起到一定的保护作用.
第三,闭包通常应用于for语句中,比如在for语句中让10个li标签弹出不同的数字,0~9,如果不用闭包形式,采用一般的for循环语句,是弹出10个数字10来的。
第四,闭包的缺点是,它延长了变量的生命周期,占据一定的内存。

闭包在网页中用得最多例子之一:
这里写图片描述

只可惜上图是一个错误的写法

这里写图片描述

上面的写法错误了,因为onclick绑定的事件的参数不能传,默认是event
所以只能在外面的outer里面传参数了

这里写图片描述

最后附上团包最通用的写法

for (var i = 0; i < 10; i++) {
arr[i] = function outer(a) {
var num = a;
function inner() {
return num;
};
return inner;
}(i);
}

原创粉丝点击