什么是闭包(closure),为什么要用它? — 闭包是指有权访问另一个函数作用域中变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量,利用闭包可以突破作用链域,将函数内部的变量和方法传递到外部。 // 闭包特性: (1)函数内再嵌套函数 (2)内部函数可以引用外层的参数和变量 (3)参数和变量不会被垃圾回收机制回收   //li节点的onclick事件都能正确的弹出当前被点击的li索引 <ul>     <li> index = 0 </li>     <li> index = 1 </li>     <li> index = 2 </li>     <li> index = 3 </li> </ul> <script type="text/javascript">     var nodes = document.getElementsByTagName('li');     for(i = 0;i<nodes.length;i+=1) {         nodes[i].onclick = function() {             console.log(i+1); //不使用闭包的话,值每次都是4         }(4);     } </script>

Get

Explore more quotes