合并两个对象但保持继承

时间:2016-02-14 18:38:46

标签: javascript inheritance multiple-inheritance

所以,我有一个名为Color的类,另一个名为Component。 目前我创建了一个像这样的新ColorComponent:

ColorComponent = Component.extend({
  init: {
    this.color = new Color();
  }
});

但我不想通过输入colorComponent.color.r之类的东西来访问颜色变量,我想直接访问像colorComponent.r这样的变量。 所以我使用合并函数来合并这两个对象,但这会破坏我的类继承。

colorComponent instanceof ColorComponent //true
colorComponent instanceof Color //false

问题是,Color类来自库,所以我不能使用我的extend函数来维护我的继承。有没有办法合并这两个类,以便上面的两个代码行都返回true?

1 个答案:

答案 0 :(得分:1)

不,那是不可能的,一个对象只能从JavaScript继承一个原型。

passenger official docs绝对是对此进行建模的正确方法。没有ColorComponent这样的东西。对于具有颜色的内容,您可能正在寻找Colored&#34;类&#34;,但您也不会使用mixin进行继承。< / p>