码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript中的闭包

时间:2017-08-25 13:49:41      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:blog   java   function   div   asc   ret   code   创建   调用   

 

 

 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中的闭包

标签:blog   java   function   div   asc   ret   code   创建   调用   

原文地址:http://www.cnblogs.com/Lin-Yi/p/7427149.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!