什么是闭包

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是闭包相关的知识,希望对你有一定的参考价值。

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

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

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

以上是关于什么是闭包的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript ---- 闭包(什么是闭包,为什么使用闭包,闭包的作用)

scala编程——函数和闭包

JavaScript 闭包(随笔)

闭包函数,装饰器

什么是闭包

文章阅读