原型继承和原型属性

时间:2013-11-25 23:07:54

标签: javascript

对象如何从javascript中的多个父项继承?

我想我会这样做:

Fruit.prototype = new Plant ();
Fruit.prototype = new anotherPlant ();

但是Fruit的原型属性(原型对象)将被设置为什么?它仍然是Fruit原始Parent构造函数的原始Parent.prototype吗?

1 个答案:

答案 0 :(得分:1)

你做不到。事实上,没有多少语言支持多重继承。

您所做的就是将prototype Fruit设置为Plant的实例,然后覆盖,其实例为{{1} }}。它与简单相同;

anotherPlant

但是,不要忘记JavaScript有一个继承链。使用上述内容,如果Fruit.prototype = new anotherPlant (); 原型为anotherPlant,则您将继承这两个对象。

Plant

JavaScript对大多数其他语言的继承方式不同;它使用原型继承,这意味着语言通过遵循用于创建的函数的构造函数的function Plant() { } Plant.prototype.foo = 'foo'; Plant.prototype.baz = 'baz-a'; function AnotherPlant() { } AnotherPlant.prototype = new Plant(); AnotherPlant.prototype.bar = 'bar'; AnotherPlant.prototype.baz = 'baz-b'; var a = new AnotherPlant(); console.log(a.foo); // foo console.log(a.bar); // bar console.log(a.baz); // baz-b 属性来确定函数的继承链(,如果这样更容易)实例