我知道,這經常被討論。但是經過像19世紀以外的人一樣尋找,我需要一些建議。通過聲明一個「命名空間」我沒有問題,但是當談到prototype.foo函數時,我卡住了。我找到了一種方法,但我不喜歡它:使用函數原型的Javascript名稱空間聲明
Namespace = {}
Namespace.obj = function() {
this.foo="bar";
}
Namespace.obj.prototype.start = function() {
this.foo="fubar";
}
blah = new Namespace.obj();
blah.start();
現在,因爲我在腳本的情況下有點神經質,我想有這樣的事情:
Namespace = {
obj: function() {
this.foo="bar";
},
obj.prototype.start: function(tabinst) {
this.foo="fubar";
}
}
...
但隨後會拋出一個錯誤: 「未捕獲的SyntaxError:意外的令牌。」
我知道,這是整容,但我認爲必須有更好的方法來聲明包含類和原型函數的「命名空間」。
好方法,+1。 – Jiri
Thans Amjad,這太好了。但是現在我又絆倒了。我看到它是正確的:使用這種方法不可能創建一個Namespace.blah()函數,它是從obj分離的? –
@Johnny如果我理解你的問題,只需在返回對象中添加一個'blah'函數: '。 。 012hreturn { obj:obj, obj2:obj2, blah:function(){/ * do something * /} };' –