我正在用Javascript填充數據庫字段的域對象。假設我有兩個對象dog
和cat
和我有以下構造函數的定義:Javascript繼承模式
function Dog(opt_data) {
var data = opt_data || {};
this.createdAt = data['created_at'];
this.updatedAt = data['updated_at'];
this.name = data['name'];
this.breed = data['breed'];
}
function Cat(opt_data) {
var data = opt_data || {};
this.createdAt = data['created_at'];
this.updatedAt = data['updated_at'];
this.name = data['name'];
this.fur = data['fur'];
}
現在,上述兩種對象都craetedAt
和updatedAt
性能。那麼,我應該創建一個新的類BaseModel
哪些有屬性,並讓所有的對象繼承,或者在這種模式的JavaScript有更好的選擇?
更新1:
我從評論和答案的理解。
function Cat(opt_data) {
var data = opt_data || {};
this.name = data['name'];
this.fur = data['fur'];
this.updateTimestamp(data);
}
Cat.prototype = Object.create({
updateTimestamp: function(data) {
this.createdAt = data['created_at'] || new Date();
this.updatedAt = data['updated_at'] || new Date();
}
});
'上述兩個對象的craetedAt和updatedAt屬性'不在您發佈的代碼中。 –
除非您發現您需要其他東西,否則請進行簡單的鴨子打字。 – Bergi
@Bergi你能給我舉個例子嗎? – CodeYogi