// 因为返回的函数有权访问私有变量 `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 内部)
江户川乱折腾
相关分类