6

可能重复:
Javascript 多重继承

JavaScript中有没有办法做到这一点:

Foo = function() {

};

Bar = function() {

};

Baz = function() {
    Foo.call(this);
    Bar.call(this);
};

Baz.prototype = Object.create(Foo.prototype, Bar.prototype);

var b = new Baz();
console.log(b);
console.log(b instanceof Foo);
console.log(b instanceof Bar);
console.log(b instanceof Baz);

那么 Baz 既是 Foo 又是 Bar 的一个实例?

4

1 回答 1

8

JavaScript 没有多重继承。instanceof测试原型链,它是线性的。不过,您可以使用 mixins,这基本上就是您正在使用的Foo.call(this); Bar.call(this). 但这不是继承;在 中Object.create,第二个参数只给出要复制的属性,而不是父级。

于 2013-01-29T01:54:33.883 回答