zoukankan      html  css  js  c++  java
  • js 闭包

    1、变量:局部变量仅在函数内用, 不可重用;全局变量随处可用, 易被污染。

    2、概念:保护并重用局部变量的机制

      a) 定义受保护的局部变量
      b) 定义内层函数专门操作受保护的变量
      c) 定义外层函数将受保护的变量和操作变量的函数封装起来,外层函数将内层函数返回到外部

    3、何时使用: 重用一个变量,又不希望被污染时-保护局部变量

    例: 

    1.

    function f1(){
      var i = 30;
      function f2(){
        i++;
        console.log(i);
      }
      return f2;
    }
    var rs = f1();//f1返回的是一个函数
    rs();//31 -- i=31
    rs();//32--之前的值未释放

    2.

    function fun(){
      var arr =[];
      for (var i=0; i<3 ; i++){
        arr[i]= function(){
          return i;
        }
      }
      //console.log(i);i=3
      return arr;  //返回数组3个元素
    }
    //console.log(i);undefin
    var funs=fun();
    console.log(funs); //[function, function, function]
    console.log(funs[0]); //function (){ return i;}
    console.log(funs[0]()); //3
    console.log(funs[1]()); //3
    console.log(funs[2]()); //3

  • 相关阅读:
    linux: convmv =-======pkgs.org
    ETL__pentaho__SPOON_PDI
    jira-source--plugin
    MAC OSX
    android gradle,groovy--https://blog.csdn.net/hebbely/article/details/79074460
    CentOS下Redis服务器安装配置
    mysql db imported into mongodb
    mongdb ---shard
    高精度整数
    CentOS 配置 Hadoop 2.6.5
  • 原文地址:https://www.cnblogs.com/ljbkyBlog/p/7301716.html
Copyright © 2011-2022 走看看