【发布时间】:2016-07-01 17:40:34
【问题描述】:
我有 3 节课...
class1 {
constructor(a, b, c) {
this.a = a;
this.b = b;
this.c = c;
this.toClass2 = function() {
// TODO: return this as an instance of class2;
// the conversion would remove the unwanted 'b' property
}
this.toClass3 = function() {
// TODO: return this as an instance of class3;
// the conversion would remove the unwanted 'a' property
}
}
}
class2 {
constructor(a, c) {
this.a = a;
this.c = c;
}
}
class3 {
constructor(b, c) {
this.b = b;
this.c = c;
}
}
以下说法正确...
- class1 可以扩展 class2
- class1 可以扩展 class3
class1 不能扩展 class2 AND class3(JavaScript 不支持多重继承,多重继承会给派生类 4 个属性,但我只想要 3 个)
class2 具有 class1 属性的子集
- class3 具有 class1 属性的子集
问题:我怎样才能最好地在 JavaScript 或 TypeScript 中实现类,以便 toClass2 和 toClass3 转换方法起作用?是否有任何设计模式?谢谢
【问题讨论】:
-
你到底在问什么?什么不适用于您的转换方法?您打算如何使用这些课程?
-
我想知道如何拥有一个提供返回其他类实例的方法的类。那些其他类将仅具有作为主类子集的属性。这不是它不起作用的情况 - 任何人都可以让它起作用 - 问题是最好的方法是什么
标签: javascript design-patterns typescript ecmascript-6