下面js代码,为什么counter和counter2 都有私有的作用域 i?

// 因为返回的函数有权访问私有变量 `i`


  function makeCounter() {

    // `i` 只能在 `makeCounter`内被访问.

    var i = 0;


    return function() {

      console.log( ++i );

    };

  }


  // 注意 `counter` 和 `counter2` 都有私有的作用域 `i`.


  var counter = makeCounter();

  counter(); // logs: 1

  counter(); // logs: 2


  var counter2 = makeCounter();

  counter2(); // logs: 1

  counter2(); // logs: 2


  i; // ReferenceError: i 未定义 (只存在 makeCounter 内部)


慕姐4208626
浏览 962回答 2
2回答

江户川乱折腾

看起来并不是这样,应该是每次调用makeCounter方法时变量i都被重新赋值了的样子
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript