JavaScript中的闭包

Posted 稀里糊涂林老冷

tags:

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

 

 

 1 /*
 2     闭包:
 3         外函数返回一个内函数,内函数用到外函数的局部变量,
 4         这种情况下,外函数运行结束后,不会回收临时变量资源,会留给内函数使用。
 5                 
 6 */
 7 
 8 //外函数里 返回一个内函数,内函数用到外函数的临时变量x
 9 //外函数结束时候,会把x绑定给内函数,因为内函数会用到
10 function enclosure( x ){
11     return function(y){
12         x+= y;
13         return x;
14     };
15 };
16 
17 //在这里用 用e接收了一个绑定x是10的内匿名函数,
18 e = enclosure(10);
19 // 之后再调用这个内函数的时候,每次都修改了同一个x,因为他们的闭包变量是被同一次创建的
20 alert(e(1));    //11
21 alert(e(2));    //13  
22 
23 
24 //这里连续两次创建新的闭包变量和内部函数,所以使用的不是同一个闭包变量
25 alert( enclosure(10)(1) );    //11
26 alert( enclosure(10)(2) );    //12

 

 

 

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

javascript中的闭包

Javascript中的闭包(转载)

Javascript——闭包作用域链

javascript 匿名函数及闭包----转载

JavaScript中的“闭包”

JavaScript闭包