闭包

闭包

无意间环境的共享  【不是作者设计的】

 

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)

}                                

 

posted @ 2022-05-11 15:28  杨建鑫  阅读(15)  评论(0编辑  收藏  举报