我对原型继承的概念相对较新,所以也许这就是原型继承应该如何工作,或者这只是 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???
最后两行显示了我的困惑。这真的是原型继承应该如何工作,还是这只是 javascript 实现它的方式?
如果这真的是原型继承应该如何工作,我真的不明白这种类型的继承在大多数情况下会有什么用处。如果我只能拥有原始类型,那么在创建复杂对象方面似乎非常有限,因为在很多情况下我有一个对象存储另一个对象的实例。