为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕姐4208626 2018-09-30 23:16:47
// 因为返回的函数有权访问私有变量 `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 内部)
查看完整描述

2 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

看起来并不是这样,应该是每次调用makeCounter方法时变量i都被重新赋值了的样子

查看完整回答
反对 回复 2018-10-08
  • 2 回答
  • 0 关注
  • 961 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信