闭包是子函数引用父函数的变量或函数;
最经常使用的形式是匿名函数自执行(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就是闭包的意思函数
可封装
减小全局变量污染,避免与第三方插件命名冲突
减小函数间传递的参数个数
如:spa
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));