【发布时间】:2017-01-17 22:22:15
【问题描述】:
我想将多个对象合并为一个对象,包括使用 ES6 语法的方法。我在这里有一个小提琴:http://www.es6fiddle.net/isvfozdu/,它显示了我想要完成的事情(下面的代码也是如此)。
我玩弄了一些装饰器模式,看起来它们应该可以工作,但最终却不行。
我要解决的问题是单个对象根据其属性具有不同的功能,并且拥有所有功能可能是有害的。
谢谢!
class A {
hi(){
console.log('hi');
}
}
class B {
bye(){
console.log('bye');
}
}
class C {
hello(){
console.log('hello');
}
}
// x = A & B, not C
x.hi();
x.bye();
x instanceof A // true
x instanceof B // true
x instanceof C // false
// y = A & C, not B
y.h1();
y.hello();
y instanceof A // true
y instanceof B // false
y instanceof C // true
这里的想法是根据 A 实例的属性将一个类的功能添加到另一个类。
let a = new A();
if(a.isEnabled){
let b = new B();
magicFunctionOrSomething(a, b);
}
a.bye();
【问题讨论】:
-
您需要在问题本身中包含相关代码。
-
已更改。谢谢阿米特
-
好。现在可以演示用例了吗?
-
你只需要
B extends A吗? -
不,子分类不起作用。
标签: javascript class ecmascript-6 decorator