js闭包

1。什么事闭包?
2.好处与应用
3.需要注意的问题
--------------------------------------------
1.函数里套函数,内部函数可以引用外部函数的参数和变量,参数和变量不会被垃圾回收机制收回。


2.希望一个变量长期在内存中

3.避免全局变量的污染

4.私有成员的存在(内部的变量外部访问不到)

用法:模块化代码
再循环中找到对应元素的索引,(而不需要加索引)


问题:IE下会有内存泄漏问题。变量会一直在内存中影响cpu速率(关闭浏览器后就不在了);
将对象设为null,或者window.onunload=function(){xx.onclick=null;(将事件设为null)}

window.onload=function(){
var aLi=document.getElementsByTagName('li');
for(var i=0;i<aLi.length;i++){
(function(i){
aLi[i].onclick=function(){
alert(i);
}
})(i)
}
}

原文地址:https://www.cnblogs.com/zhangxinxin111/p/4730256.html