1
目前我正在嘗試使用John Resigs Simple Javascript Inheritence庫,這個工程很好,但是當我嘗試修改默認的成員變量時,它似乎影響原型而不是隻影響原型:用John Resigs修改類屬性簡單的javascript繼承
正如你所看到的,事件是不同長度的每次創建新實例時。我是以錯誤的方式使用庫還是這是一個已知的缺陷?有什麼選擇?
目前我正在嘗試使用John Resigs Simple Javascript Inheritence庫,這個工程很好,但是當我嘗試修改默認的成員變量時,它似乎影響原型而不是隻影響原型:用John Resigs修改類屬性簡單的javascript繼承
正如你所看到的,事件是不同長度的每次創建新實例時。我是以錯誤的方式使用庫還是這是一個已知的缺陷?有什麼選擇?
這裏的問題是,你是用events: []
陣列(和{}
對象)變量引用擴展類。所以通過用數組擴展該類,該類的每個實例將具有等於相同引用數組的events
。
要解決這個問題,你可以做
var Test = Class.extend({
events: null,
init: function() {
this.events = [];
this.events.push(1);
alert(this.events.length);
},
say: function(words) {
}
});
這樣,每個類初始化一個新的數組(因此參考)時間任命爲events
。我不知道,但它應該工作。