Pet*_*tah 6 javascript inheritance prototype multiple-inheritance ecmascript-5
可能重复:
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);
Run Code Online (Sandbox Code Playgroud)
那么Baz既是Foo又是Bar的一个例子?
JavaScript没有多重继承.instanceof测试原型链,这是线性的.但是,你可以使用mixins,这基本上就是你正在做的事情Foo.call(this); Bar.call(this).但它不是继承; 在Object.create,第二个参数只提供要复制的属性,而不是父级.