我试图在不实际更改源的情况下更改jquery插件的行为。出于这个问题的目的,我构建了一个简单的例子来说明我的问题。如果有脚本文件将类实例生成器附加到全局变量,如下所示:
(function(){
window.newMyClass = function(){
return new myclass();
}
function myclass(){
var privateMethod = function(){
return "private";
}
this.publicMethod = function(){
return privateMethod();
}
}
})()
如果我随后使用var instance = window.newMyClass()
获取myclass的新实例,有没有办法覆盖privateMethod
instance
上instance.publicMethod()
的行为,这样{{1}}会调用我的重写功能?我以为我可以继承myclass,但由于myclass构造函数的作用域是立即调用的函数表达式,我不知道如何做到这一点。
更改插件源是否更好?问题是我必须自己托管它而不是使用CDN,并且每次发布更新时都要重新实现更改。
答案 0 :(得分:0)
我不知道我是否理解这一点。可能不是,因为没有与之相提并论:
(function(){
window.newMyClass = function(){
return new myclass()
}
function myclass(){
var privateMethod = function(){
return "private";
}
this.publicMethod = function(){
return privateMethod();
}
}
})();
var instance = window.newMyClass();
instance.publicMethod = function(){
return "new method";
}
console.log(instance.publicMethod());