什么是闭包呢?
闭包是子函数引用父函数的变量或函数;
最常用的形式是匿名函数自执行(function(){}())。
如:有三个div,点击div弹出相应的内容
<div id="1">1</div>
<div id="2">2</div>
<div id="3">3</div>
for(var i =1;i<3;i++){
var ele = document.getElementsById(i);
(function(i){
ele.onclick=function(){
alert(i);
}
}(i));
}
其次在谷歌调试中,也能实时监测闭包变量或函数,如下图显示;closure就是闭包的意思
闭包的好处
可封装
减少全局变量污染,避免与第三方插件命名冲突
减少函数间传递的参数个数
如:
function calFactory(base){
var base = 5; //优先级比参数高
return function(max){
var total = 0;
for (var i =1;i<=max; i++) {
total+=i;
}
return total + base;
}
}
var adder = calFactory(2); //adder = function(max)
alert(adder(3));
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。