这个例子可以被认为是javascript中的多重继承吗。。?

这个例子可以被认为是javascript中的多重继承吗。。?,javascript,inheritance,Javascript,Inheritance,我听说JavaScript不支持多重继承 下面的例子是否可以被视为多重继承?如果没有,那么任何人都可以解释为什么 function A () { this.a = 'a' }; function B () { this.b = 'b' }; function AB () { A.call(this); B.call(this); }; var obj = new AB(); console.dir(obj); //Output: {a: "a", b: "b"} 您所做的

我听说JavaScript不支持多重继承

下面的例子是否可以被视为多重继承?如果没有,那么任何人都可以解释为什么

function A () {
  this.a = 'a'
};

function B () {
  this.b = 'b'
};

function AB () {
  A.call(this);
  B.call(this);
};

var obj = new AB();
console.dir(obj);
//Output: {a: "a", b: "b"}

您所做的被称为组合,它通常是多重继承的替代方法

以下是一些可能对您有所帮助的参考资料


您所做的被称为组合,它通常是多重继承的替代方法

以下是一些可能对您有所帮助的参考资料

下面的例子可以被认为是多重继承吗

没有

谁能解释一下原因吗

你的
AB
(我从这里开始称之为
C
)函数实际上并没有扩展
A
,也没有扩展
B

函数A(){
this.a='a';
}
函数B(){
this.b='b';
}
函数C(){
打电话(这个);
叫(这个);
}
a=新的a();
log('a是a',a的实例);
b=新的b();
log('b是b',b instanceof b);
c=新的c();
log('c是A',c是A的实例,'c是B',c是B的实例)
下面的例子可以被认为是多重继承吗

没有

谁能解释一下原因吗

你的
AB
(我从这里开始称之为
C
)函数实际上并没有扩展
A
,也没有扩展
B

函数A(){
this.a='a';
}
函数B(){
this.b='b';
}
函数C(){
打电话(这个);
叫(这个);
}
a=新的a();
log('a是a',a的实例);
b=新的b();
log('b是b',b instanceof b);
c=新的c();

log('c是A',c是A的实例,'c是B',c是B的实例)谢谢你的回答和即时回复谢谢你ZZBBOV你的答案和即时回复。非常感谢杰瑞米的回答。非常感谢杰瑞米的回答。1/2::由于以下原因,我既不考虑问题,也不考虑2个答案为“主要基于意见”。首先,OP的问题直截了当地指向一个目标,并附有一个很好地选择的例子,因为它直接指出了看待这个问题的方式,特别是在JS中,它的函数是构造函数,原型链接到构造函数,上下文可以通过调用和应用委托给函数。(观点:因此OP的问题不应该像现在这样被否决。)。。。。。。2/2::其次,@zzzzBov将给定的示例更改了3次,以显示JS中基于函数的对象组合和构造函数与基于原型的继承之间的差异。第三,两种回答都认为构图可以被看作是多重继承的选择,这也不是一个不合理的意见。第二部分:由于以下原因,我既不考虑问题,也不考虑2个答案:“主要是基于意见的”。首先,OP的问题直截了当地指向一个目标,并附有一个很好地选择的例子,因为它直接指出了看待这个问题的方式,特别是在JS中,它的函数是构造函数,原型链接到构造函数,上下文可以通过调用和应用委托给函数。(观点:因此OP的问题不应该像现在这样被否决。)。。。。。。2/2::其次,@zzzzBov将给定的示例更改了3次,以显示JS中基于函数的对象组合和构造函数与基于原型的继承之间的差异。第三,两个答案都表明,组合可以被视为多重继承的替代品,这也不是一个不合理的观点。