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);

バズがFooとBarの両方のインスタンスになるように?

4

1 に答える 1

8

JavaScriptには多重継承はありません。instanceof線形であるプロトタイプのチェーンをテストします。ただし、ミックスインを使用することはできますが、これは基本的にはで行っていることですFoo.call(this); Bar.call(this)。しかし、それは継承ではありません。ではObject.create、2番目のパラメータはコピーするプロパティのみを提供し、親ではありません。

于 2013-01-29T01:54:33.883 に答える