私はプロトタイプ継承の概念に比較的慣れていないので、これはプロトタイプ継承がどのように機能するか、またはこれは単なるjavascriptですが、プロトタイプ継承は適切なプリミティブ型のみのようです。たとえば、次のコードがあります。
var leg = {
type: null
};
var Animal = {
traits: {},
leg: Object.create(leg)
};
var lion = Object.create(Animal);
lion.traits.legs = 4;
lion.leg.type = 'left';
var bird = Object.create(Animal);
bird.traits.legs = 2;
bird.leg.type = 'right';
alert(lion.traits.legs) // shows 2???
alert(lion.leg.type) // shows right???
最後の 2 行は、私の混乱を示しています。これは本当にプロトタイプの継承がどのように機能するはずなのか、それとも JavaScript がそれをどのように実装したのか?
これが実際にプロトタイプの継承が機能する方法である場合、ほとんどの場合、そのタイプの継承がどのように役立つかはわかりません。プリミティブ型しか持てない場合、別のオブジェクトのインスタンスを格納するオブジェクトがある場合が多いため、複雑なオブジェクトの作成が非常に制限されているようです。