闭包 讲解

2020-09-23  本文已影响0人  zhang463291046

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

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

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
上一篇 下一篇

猜你喜欢

热点阅读