我可以从范围外访问范围变量吗?

时间:2013-12-30 19:51:55

标签: javascript scope

有没有办法从范围外访问范围变量?

例如,如何从此函数外部编辑count

var counter = (function(){
    var count = 0;
    return function () {
        return ++count;
    };
})();

1 个答案:

答案 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

但除了执行上述操作外,没有真正的访问本地范围的变量。