有没有办法从范围外访问范围变量?
例如,如何从此函数外部编辑count
:
var counter = (function(){
var count = 0;
return function () {
return ++count;
};
})();
答案 0 :(得分:4)
目前无法(我也认为永远>无法从范围外访问本地变量。
这就是整个想法。
你可以做的是改变函数返回以返回一个对象,这样你就可以增加和减少count
变量:
function counterObject = (function(){
var count = 0;
return {
up: function(){ return ++count; },
down: function(){ return --count; }
};
})();
counterObject.up(); // 1
counterObject.up(); // 2
counterObject.up(); // 3
counterObject.down(); // 2
counterObject.up(); // 3
但除了执行上述操作外,没有真正的访问本地范围的变量。