何が良いですか?
この実装
var Animal = function(){
this.properties = {};
for(var key in Animal.prototype.properties) this.properties[key] = Animal.prototype.properties[key];
};
Animal.prototype.properties = {
name: 'animal'
};
またはこれ
var AnimalV2 = function(){
this.properties = Object.create(AnimalV2.prototype.properties);
};
AnimalV2.prototype.properties = {
name: 'animalv2'
};
プロトタイプ プロパティを変更すると、2 番目の実装にのみ影響します。
var dog = new Animal()
var cat = new AnimalV2();
Animal.prototype.properties.name = 'hello world';
AnimalV2.prototype.properties.name = 'hello world';
console.log(dog.properties.name); // 'animal'
console.log(cat.properties.name); // 'hello world'
ご覧のとおり、dog.properties は Animal.prototype.properties とリンクされていません。パフォーマンスまたはコード品質の点で優れていますか?