【发布时间】:2020-10-27 21:27:54
【问题描述】:
这里有几个 JS 类。 GrandChildOne 和 GrandChildTwo 类是相同的,但扩展了不同的父类。由于他们的代码是相同的,我正在寻找摆脱这种重复的方法。换句话说,我想要一个类(我们称之为GrandChild)并用它来扩展ChildOne 和ChildTwo 类。有什么建议吗?
class Parent {
someParentMethod () {
console.log('Parent')
}
}
class ChildOne extends Parent {
someChildOneMethod () {
console.log('someChildOneMethod')
}
}
class ChildTwo extends Parent {
someChildTwoMethod () {
console.log('someChildTwoMethod')
}
}
// THE CLASSES BELOW ARE IDENTICAL
class GrandChildOne extends ChildOne {
someGrandChildMethod() {
console.log('someGrandChildMethod')
}
}
class GrandChildTwo extends ChildTwo {
someGrandChildMethod() {
console.log('someGrandChildMethod')
}
}
const grandChildOne = new GrandChildOne()
const grandChildTwo = new GrandChildTwo()
【问题讨论】:
-
“如何使用一个类扩展多个类(不是多重继承)”“不是多重继承”是什么意思?扩展多个类就是多重继承。我假设你知道不支持。所以我想说你应该将这个通用代码提升到通用基础或使用其他方法(mixin、composition)
-
By ("not multiple继承") 我的意思是说我不是在寻找像
class Child extends ParentOne, ParentTow {}这样的东西(我不确定它是否不受支持)。但是,是的,你是对的——mixin 是一种方法。谢谢你,先生!
标签: javascript javascript-objects javascript-inheritance