1.模块化代码
<script>
var abc = (function(){ //abc为外部匿名函数的返回值
var a = 1;
return function(){
a++;
alert(a);
}
})();
abc(); //2 ;调用一次abc函数,其实是调用里面内部函数的返回值
abc(); //3
</script>
这时是最基本的闭包模式,可以将变量完全限制在闭包内.
通过匿名函数减少了中间变量
2.模拟private变量:
function classA(){
var privateaA = 1;
function getA(){
return privateaA;
}
function setA(para){
privateaA = para; // 999
}
return {getA:getA,setA:setA}
}
var obj = classA()
3.添加监听器时记录索引
var aLi = document.getElementsByTagName('li');
for (var i=0;i<aLi.length;i++){
aLi[i].onclick = function(){ //当点击时for循环已经结束 alert(i); }; }
<ul> <li>123</li> <li>456</li> <li>789</li> <li>010</li> </ul>wad