闭包
闭包
无意间环境的共享 【不是作者设计的】
1. 什么是闭包或闭包是什么情况
2个函数,这俩函数作用域是链接,
内部函数可以访问外部函数的局部变量。
2.产生的条件
函数嵌套,内部函数引用外部函数的局部变量,执行外部函数
内部函数引用全局变量,不会产生闭包
3. 闭包的优点
优点:外部函数的局部变量驻留在内存中,不会垃圾回收掉。
4. 闭包缺点。
局部(外部函数)变量驻留内存中,导致性能可能会下降。
5. 闭包场景和如何解决缺点
4.1 for里面有事件,但是事件中的值,永远是for最后的结果。
4.2 如何解决缺点
把驻留在内存中的变量,在不用的时候,设置为null。【重点】
<ul>
<li>111</li>
<li>222</li>
<li>333</li>
</ul>
<script type="text/javascript">
var lis = document.getElementsByTagName('li');
for(var i=0;i<lis.length;i++){
(function(i){
lis[i].onclick = function(){
alert(i); //0 1 2
lis[i].onclick = null;
}
})(i)
}
本文来自博客园,作者:杨建鑫,转载请注明原文链接:https://www.cnblogs.com/qd-lbxx/p/16258127.html

浙公网安备 33010602011771号