zoukankan      html  css  js  c++  java
  • 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

     

     

  • 相关阅读:
    Python的文本数据
    Python
    正则表达式
    多数据库的链接
    工作感受月记 201902月
    女儿的出生
    工作感受月记 201901月
    工作感受月记 201812月
    工作感受月记 201811月
    工作感受月记 201809
  • 原文地址:https://www.cnblogs.com/Lin-Yi/p/7427149.html
Copyright © 2011-2022 走看看