闭包
1.闭包的概念:在函数的外部讷讷狗狗访问函数内部的变量,是联系函数外部和函数内部的桥梁,表现为函数的嵌套。
2.闭包的优点:
(1)变量缓存
(2)避免命名冲突:创建命名空间 尽可能少的定义全局变量,避免全局空间的污染,减少协作时的干扰
3.闭包的缺点:
(1)容易发生泄漏:一块内存空间既不能被使用也不能被销毁
(2)占用内存:当闭包使用过多时,消耗内存
4.闭包的应用实例:利用闭包写一个点击li,打印出li的索引的效果
<body>
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
<script type="text/javascript">
var aLi = document.querySelectorAll("li");
for(var i = 0; i < aLi.length; i++){
aLi[i].onclick = (function(i){
return function (){
console.log(i);
}
})(i)
}
</script>
</body>