什么是闭包

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

如下面的代码函数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>

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

原文地址:https://www.cnblogs.com/mysic/p/5954835.html