javascript - 原型(prototype)继承和原型(prototype)属性

标签 javascript

JavaScript中一个对象如何从多个父对象继承?

我想有人会这样做:

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

但是 Fruit 的原型(prototype)属性(原型(prototype)对象)将被设置为什么呢?还会是Fruit原来的Parent构造函数的原来的Parent.prototype吗?

最佳答案

你不能。事实上,支持多重继承的语言并不多。

您所做的就是将 Fruitprototype 设置为 Plant 的实例,然后覆盖 它带有 anotherPlant 的实例。和简单的一样;

Fruit.prototype = new anotherPlant ();

但是,不要忘记 JavaScript 有一个继承链。使用上面的内容,如果 anotherPlantPlant 作为其原型(prototype),那么您将从这两个对象继承。

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

JavaScript 的继承方式与大多数其他语言不同;它使用原型(prototype)继承,这意味着语言通过遵循所使用的构造函数的 prototype 属性来确定函数(,如果这样更容易的话)的继承链创建实例。

关于javascript - 原型(prototype)继承和原型(prototype)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20205351/

相关文章:

javascript - 将元素的 runat 设置为 ="server"时,ASP.NET javascript 代码不起作用

javascript - JS | getContext ('2d' 的问题)

javascript - 如何在正则表达式中使用变量并操作变量?

javascript - 在 React 中导入 JSON 文件

javascript - 调用返回的函数

javascript - 使用jquery设置输入值

javascript - 调试代码我认为这将是这个函数 onSelect

javascript - 验证传入的值是否可以转换为日期

javascript - 在这种情况下 IF 条件始终为假

javascript - 如何在返回单个对象时递归使用 Array.prototype.find()?