zoukankan      html  css  js  c++  java
  • 闭包与变量

     1 // 闭包与变量
     2 function createFunctions(){
     3   var result=new Array();
     4   for(var i=0;i<10;i++){
     5     result[i]=function(){
     6       return i;
     7     };
     8   }
     9   return result;
    10 }
    11 //这个函数用回返回一个函数数组;每个函数都返回时;
    12 // 因为每个函数的作用域中都保存着createFunctions()函数的活动对象,他们引用的都是同一个变量i;当createFucntion返回后,
    13 // 变量i对的值为10;此时每个函数都引用着保存变量i的同一个变量对象;所以再每个函数内部的i的值都是10;
    14 //为了让符合预期:可以:
    15 function createFunctions(){
    16   var result=new Array();
    17   for(var i=0;i<10;i++){
    18     result[i]=function(num){
    19        return function(){
    20          return num;
    21        }
    22     }(i);
    23   }
    24   return result;
    25 }
    26 //在这里我们将匿名函数的值复制给数组,这里匿名函数有提个参数num;也就是最终函数要返回的值;在调用每个匿名函数的时候,
    27 // 我们传入了变量i;由于函数参数是按值传递的;所以会将变量i的当前值复制给参数num;儿在这个匿名函数内部,又创建并返回一个访问num的闭包;
  • 相关阅读:
    phpstorm设置内存限制的方法
    PHP str_replace的用法
    php PDO getlastsql写法
    css3 transform做动画
    PHP判断是否关注微信公众号
    nginx目录安全设置
    BaseAdapter自定义适配器——思路详解
    sys.path
    plt.rcParams[]
    %matplotlib inline
  • 原文地址:https://www.cnblogs.com/yangguoe/p/9054563.html
Copyright © 2011-2022 走看看