闭包
闭包
无意间环境的共享 【不是作者设计的】
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