私は、データベースフィールドを入力するJavascriptでドメインオブジェクトを作成しています。上記の目的の両方がcraetedAt
とupdatedAt
性質を持っている、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'];
}
:私は2つのオブジェクトdog
とcat
を持っていると私は、コンストラクタ関数の定義を以下していると仮定します。だから、プロパティを持つ新しいクラス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