我正在創建一個對象文字,我將其用作名稱空間。對象文字(名稱空間)碰巧包含一個構造函數MyConstructor。我想在對象文本中擴展MyConstructor的原型。如果我將MyConstructor的聲明拉出並放在myNamespace的聲明之上,一切正常,但MyConstructor不再由myNamespace命名空間。如何最好地完成這項工作?以下編譯失敗,因爲
的'。'在此行中:在對象文字中聲明原型
MyConstructor.prototype = {
對象字面意義如下。
謝謝, 邁克
var myNamespace = {
a: 3,
b: function (msg) {
alert(this.a);
},
MyConstructor: function(xx) {
this.x = xx;
},
MyConstructor.prototype = {
a: 1,
b: function() {
return true;
}
}
};
更新:接受的解決方案的工作。但是,我的問題的前提是有缺陷的。在這種情況下,我根本不會使用對象字面值,因爲我發現它很難進行單元測試。相反,我會使用用構造函數創建的普通對象,並將私有對象放入其中。另一件事是,「自我/即時執行功能」雖然在某些方面很漂亮,但對於向新手解釋有點困難。
你和你都是正確的,你們都實時回答,但我只能選擇你的答案之一。感謝你們倆。 – Mike 2010-12-08 13:50:18