我正在嘗試更改jquery插件的行爲而不實際更改源代碼。爲了這個問題的目的,我構建了一個簡單的例子來說明我的問題。如果有附加一個類的實例發生像這樣的全局變量腳本文件:更改私人課程方法
(function(){
window.newMyClass = function(){
return new myclass();
}
function myclass(){
var privateMethod = function(){
return "private";
}
this.publicMethod = function(){
return privateMethod();
}
}
})()
如果我再拿到的MyClass新實例var instance = window.newMyClass()
,有沒有什麼辦法來覆蓋對instance
的privateMethod
的行爲,例如instance.publicMethod()
會調用我的重寫函數?我在想我可以繼承myclass,但由於myclass構造函數的作用域是立即調用的函數表達式,我不知道該怎麼做。
更改插件源更好嗎?問題在於我必須自己託管它,而不是使用CDN,並且每次發佈更新時都要重新實施更改。
你能做的唯一的事情就是覆蓋'publicMethod'。 – 2014-12-13 01:23:03
他們被稱爲「私人」的方法是有原因的。 – 2014-12-13 06:14:59