【发布时间】:2014-09-22 13:09:34
【问题描述】:
为什么这种类型的继承在 JavaScript 中不起作用。有什么方法可以执行此步骤。 请帮忙
function base() {}
base.prototype.findFirst = function() {
console.log("FindMe First");
}
function base2() {}
base2.prototype.findMe = function() {
console.log("FindMe ");
}
function inherit() {
base.call(this);
base2.call(this);
}
inherit.prototype = base.prototype;
inherit.prototype.constructor = inherit;
inherit.prototype = base2.prototype;
inherit.prototype.constructor = inherit;
var test = inherit();
test.findFirst();
test.findMe();
【问题讨论】:
-
在 javascript 对象中不能有多个原型链。这是不可能的。
-
我建议你可能是#doingitwrong。 JS 是一种函数式编程语言,而不是面向对象的语言。您可能最好使用可用的强大功能特性(例如闭包)而不是尝试将 OOP 实现混杂在一起,因为它不会像您想要的那样工作
-
即使在可能的语言中,多重继承也不是一个好主意。而在 Javascript 中则不是。
-
@Joe JS 是基于原型的,这是另一种 OOP 风格。
-
好吧,你为什么认为它首先会起作用?你了解 JS 中的继承是如何工作的吗?
标签: javascript inheritance prototype