美文网首页
闭包 讲解

闭包 讲解

作者: zhang463291046 | 来源:发表于2020-09-23 16:47 被阅读0次

    以下内容是引用或者借鉴别人的,自己只是做个笔记,方便学习。理解错误的地方,欢迎评论。如有侵权,私聊我删除,未经允许,不准作为商业用途

    闭包:将方法内部变量声明为局部(私有),致使外部不能直接引用,因此通过方法访问和操作内部变量,变量的值始终保持在内存中

    • 最简单闭包实例
    function f1() {
      var n = 999;
      function f2() {
        alert(n);
      }
      return f2;
    }
    
    var result = f1();
    result(); // 999
    console.log(n) //error
    
    • 返回多个变量
    function f1() {
      var n = 999;
      function f2() {
        n++;
      }
      function f3() {
        n = n-2;
      }
      function f4() {
        return n;
      }
      return {
        f2,
        f3,
        f4
      };
    }
    
    var result = f1();
    result.f4();  //999
    result.f2(); 
    result.f4(); //1000
    result.f3(); 
    result.f4();//998
    var result2 = f1();
    result2.f4();  //999
    
    • 带参数
    function f1(x) {
      var n = x;
      function f2(y) {
        var m = y;
        return n + m;
      }
      function f3(y) {
        var m = y;
        return n - m;
      }
      function f4(y) {
        var m = y;
        return n * m;
      }
      return {
        f2,
        f3,
        f4
      };
    }
    
    var result = f1(10);
    console.log(result.f2(3))  //13
    console.log(result.f3(3))  //7
    console.log(result.f4(3)) //30
    

    相关文章

      网友评论

          本文标题:闭包 讲解

          本文链接:https://www.haomeiwen.com/subject/dgkoyktx.html