如果我有一個運行一些初始化代碼的JavaScript類,那麼把這段代碼放在最上面,並在類的底部放置任何方法似乎是合乎邏輯的。問題是,如果初始化代碼包含一個方法調用,我得到'undefined'不是函數錯誤。我想象因爲該方法是在方法調用後定義的。人們通常如何構建JavaScript類來避免這種情況?他們是否將所有初始化代碼放在課程末尾?例如:如何構造javascript對象,而不是'未定義'不是一個函數錯誤?
var class = function() {
this.start();
this.start = function() {
alert('foo');
};
};
var object = new class();
導致錯誤,而:
var class = function() {
this.start = function() {
alert('foo');
};
this.start();
};
var object = new class();
沒有。什麼會被認爲是一個像這樣的JavaScript對象的好結構?
我得到'類是Firebug的一個保留identifier':http://jsfiddle.net/ATeMb/我猜這是不是你指的錯誤,雖然。 – 2012-03-13 01:11:55
@JaredFarrish是的,我意識到示例代碼使用保留字。用foo和對象與酒吧切換類自己嘗試。 – dqhendricks 2012-03-13 01:13:22
更新爲['class'更改爲'cls'](http://jsfiddle.net/ATeMb/1/),現在我得到一個TypeError:this.start不是函數錯誤。 (我意識到可能是我發佈初步評論後的情況。) – 2012-03-13 01:14:08