我有很多课程,但是对于这个问题,我将简化一下。
class A {
}
class B extends A {
}
class C extends A {
}
class D extends C {
}
现在我的问题是:如何获得班级(全部,不仅是直接)孩子的名单?因此,A.getChildren()
将是[B, C, D]
,而C.getChildren()
将是[D]
。顺便说一句,我只是在寻找纯JavaScript解决方案。
也许这甚至是不可能的,我需要以一种完全不同的方式来解决这个问题,例如在其父类中注册每个类。
那么,有没有一个简单的函数(编写的或只是内置的)可以做到这一点,如果甚至不可能,我应该以其他方式解决此问题吗?
答案 0 :(得分:3)
如果您可以控制A
的构造函数 ,并且如果每个类至少实例化一次,则可以在构造函数中放置一行以将子类添加到{ {1}}:
Set