首页 > 代码库 > 什么是闭包

什么是闭包

闭包:一个可以使用另外一个函数作用域中的变量的函数。

如下面的代码函数b就是闭包,但是这个前提是:当函数a的内部函数b被函数a外的一个变量引用的时候,就创建了一个我们通常所谓的“闭包”。

意思是说b要变成闭包的话,就必须被外包所引用,即c引用:

<script type="text/javascript">function a(){   var i=1;   function b(){
++i;
return i; }
return b;}
var c=a();
alert(c());</script>

用一个专业一点的说法就是:函数调用返回后一个没有释放资源的栈区;

什么是闭包