我可以在此JavaScript函数的覆盖版本中访问私有变量吗?



我正在使用同事写的一些JavaScript,需要覆盖另一个脚本文件中的一个功能,该功能将在第一个文件后加载。

我认为问题是我要覆盖的功能是立即函数中返回对象的一部分。也许和榜样会有所帮助。结构看起来像这样:

(function(){
    // stuff here
    $.obj=(function(){      
        var initialized=false;
        return {                    
            init:function(){ \ stuff here}                 
         }      
    }()
})();

在我的替代中,我想做类似的事情:

$.obj.init = function(){ 
    // different implementation but with access to value of 'initialized'
}

有办法可以实现自己想做的事情吗?

您需要使私有变量获得可靠:

(function(){
    // stuff here
    $.obj=(function(){      
        this.initialized = false;
        return {                    
            init:function(){ \ stuff here}                 
         }      
    }()
})();

因此,您可以稍后访问:

$.obj.init = function(){ 
    // different implementation but with access to value of 'initialized'
    this.initialized = true;
}

,请注意,要为此,您需要创建一个对象。我的意思是,您需要这样致电obj

var newObj = new $.obj();

最新更新