我已經做了很多的閱讀。我寫了很多虛擬代碼。當我一勞永逸地征服JavaScript繼承時,我仍然和我一樣困惑。也許更是如此。Javascript原型類繼承
我非常欽佩Backbone.js
,我喜歡它的使用集合。所以我閱讀了源代碼並感受到了啓發。但是我繼續跳過繼承與擴展對象的關係。
這裏,作爲最好的,我可以推斷出一個Javascript類繼承,用於該用途的目的,我看不出在使用擴展benfit:
function Collection(){
this._models = [];
}
Collection.prototype = {
models: function() {
return this._models;
},
fetch: function() {
console.log("TODO Override fetch method");
},
add: function(model){
this._models.push(model);
$(this).triggerHandler("add", model);
},
}
function Employees(){}
Employees.prototype = new Collection();
Employees.prototype.fetch = function(){
this._models = [new Person("Ron", "male"), new Person("Stevie", "female"), new Person("David Blunkett", "female")];
}
感覺有點怪訪問超類(Collection
)_models
財產直接在Employees
但它的工作原理。這種方法有什麼問題嗎?任何gottchas或警告?我不想建立一個應用程序,以找出它的一點點... ...。
編輯 它可能是值得注意的一個Person
是Model
太...
function Model(){}
Model.prototype = {
get: function(attr){
return this.attr;
},
set: function(attr, value){
return this[attr] = value;
}
}
function Person(name, gender){
this.name = name;
this.gender = gender;
}
Person.prototype = new Model();
謝謝。我今天晚上試試看它。學習Javascript「課程」真的讓我失望 – JonWells
真的很有幫助,謝謝 – JonWells