我無法感謝您的足夠時間和幫助!我已經搜索了近2天,無法找到我確切的答案。開始:Javascript子方法/帶構造函數的命名空間
我一直使用對象文字符號來創建我的對象。不過,我最近遇到了需要創建同一對象的多個實例的情況。我相信我試圖創建的「構造函數」:
我需要創建多個「窗口」對象的能力:
var window1 = new Window();
var window2 = new Window();
var window3 = new Window();
我希望能夠組織方法的能力作爲這樣的:
window1.errorMessage.show();
window2.errorMessage.hide();
window3.errorMessage.hide();
,而不是像這樣:
window1.showErrorMessage();
window2.hideErrorMessage();
window3.hideErrorMessage();
我將如何建立我的窗口對象中的文字符號的一個例子:
var Window = {
id: null,
init : function(id) {
this.id = id;
},
errorMessage : {
show : function(message) {
// jquery that will simply take the id of this window,
// find the errorMessage html element within the window,
// insert the "message" and show it.
},
hide : function() {
// jquery that will simply take the id of this window,
// find the errorMessage html element within this window and hide it.
}
}
}
的我怎麼會嘗試使用構造函數和原型建立我的窗口對象的例子:
function Window(id) {
this.id = id;
this.errorMessage = function() {}
}
Window.prototype.errorMessage = function() {}
Window.errorMessage.prototype.show = function(message) {
// jquery that will simply take the id of this window,
// find the errorMessage html element within the window,
// insert the "message" and show it.
}
Window.errorMessage.prototype.hide = function() {
// jquery that will simply take the id of this window,
// find the errorMessage html element within this window and hide it.
}
當我嘗試執行以下代碼:
var window1 = new Window();
window1.errorMessage.show('An error message');
(最後,我想用叫它:)
this.errorMessage.show('An error message');
我收到以下錯誤控制檯從Firefox:
- 類型錯誤:Window.errorMessage未定義
- 類型錯誤:Window.errorMessage .show不是函數
非常感謝您的幫助。我很感激。
正如一個建議,不要使用'Window' - 它已經是一個接口:https://developer.mozilla.org/en-US/docs/Web/API/Window – Ian
您分配屬性'errorMessage'到'Window.prototype',但是然後試圖訪問'Window.errorMessage',它不存在。 –
哦,我絕對不會在最後使用「窗口」。我只是試圖簡化我試圖實現的目標。但是,謝謝:) – MSchwartz