闭包

来源:互联网 发布:产品经理 原型软件 编辑:程序博客网 时间:2024/06/05 10:21

在a函数中定义了b函数,而在b函数里使用了a函数的变量,就会产生闭包,我们说b就是一个闭包.

闭包的作用:可以延长变量的作用域;

一个经典的使用是:

<ul><li></li>  <li></li><li></li></ul>

var lis = document.getElementsByTagname(‘li’);for(var i =0;  i < lis.length; i++){    lis[i].onclick= function(a){        return  function(){    console.log(a)        }    }(i);}

       闭包会有一个后果产生:: 就是内存泄漏,因为,当他调用父级的变量时,如果父级也是一个函数,则本来父级执行完 要销毁 的,但是因为他使用了父级的变量,所以导致父级的某个或某些变量无法销毁,造成内存泄漏.

原创粉丝点击