JavaScript如何获取子类?

时间:2019-01-16 04:38:32

标签: javascript ecmascript-6

使用es6类定义的类作为标题,如何获取指定基类的所有子类?

例如,以下定义了三个类A, B, C

Class A {}
Class B extends A{}
Class C extends A{}

如何获取A的所有子类? (= ^-ω-^ =)


有人说这个问题毫无意义。穆蒙是否没有遇到过根据状态切换多个操作的情况?相比于使用类来实现多态性,使用if-else一对一的判断是否更优雅? ┐(̄ヮ)̄


我找到了一种适用于我的方法。

class A {}

const builder = (clazzMap => {
  return new class {
    // zhùcè yīgè class, chuàngjiàn zi lèi shí diàoyòng, yòng yú jìlù měi yīgè [zhuàngtài => zi lèi] duìyìng
    register(status, clazz) {
      clazzMap.Set(status, clazz)
      return this.Clazz
    }
    /**
     * huòqǔ yīgè biāoqiān zi lèi duìxiàng
     * @param {Number} index suǒyǐn
     * @returns {Tab} zi lèi duìxiàng
     */
    getInstance(index) {
      const clazz = clazzMap.Get(index)
      return new clazz()
    }
  }()
})(new Map())
builder.Register(1, class B extends A {})
builder.Register(2, class C extends A {})
  

附件:问题已整合到博客中,欢迎在https://blog.rxliuli.com/p/e17d1a04/处播放

0 个答案:

没有答案