假設我有類似:用jQuery事件更新JavaScript中的主類的正確方法是什麼?
var MyApp = function() {
this.name = "Stacy"
}
MyApp.prototype.updateName = function(newname) {
this.name = newname;
}
在我的主網頁我有一個:
$(function() {
var instance = new MyApp();
})
我有一個按鈕的事件處理程序,將更新名稱:
$("#button").on("click", function(evt) {
// Update the name in MyApp to something else...
instance.name = "john" // I do not like using instance here, because it has to be "instance" has to be created before I can use it. I want to be able to make this independent of "instance" being created or not
});
什麼是這樣做的正確方法,以便按鈕處理程序將更新「MyApp」以使其具有正確的名稱,而不顯式使用myapp的創建「實例」作爲對接的一部分在點擊處理程序?
理想,我想推某處jQuery的事件處理程序爲「MyApp的」,這樣我可以這樣做:
MyApp.prototype.events = function() {
$("#button").on("click", function(evt) {
this.name = "john"
});
}
雖然它不工作,因爲這指的是別的東西。
如何正確構造我的應用程序,使事件處理程序或多或少地更新「MyApp」的屬性,以便它可以獨立於創建的「實例」(即,我不再需要使用「實例「。)?
使用「新」的原因是,人們可以簡單地包含我的.js文件,並創建一個MyApp的「新」實例來使用。 – Rolando 2013-03-07 18:27:32
你不需要爲單例創建一個新的。其實你不需要在任何情況下使用新的(好...新的日期())。 只要加載了MYAPP對象,就可以引用它。 – bgusach 2013-03-07 18:29:43