我正在使用一些同事编写的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'
}
有没有办法可以达到我想做的目的?
答案 0 :(得分:0)
您需要使私有变量可访问:
(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();