JavaScript 中如何获取子类?

题,使用 es6 class 定义的类,如何获取指定基类的所有子类呢?

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

class A {}class B extends A{}class C extends A{}

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


有人说这个问题毫无意义,难道泥萌没有遇到过根据状态切换多种操作的情况么?难道一个一个的使用 if-else 判断会比使用 class 实现多态更优雅么?┐( ̄ヮ ̄)┌


宝慕林4294392
浏览 872回答 1
1回答

慕村225694

extends 只是一个"声明",真正起作用还是需要子类实例化的时候。虽然子类实例化的时候会默认调用父类的constructor,并可以依此获取到子类实例,及其constructor,间接获取到子类class;但看你需求好像并不能做到这一点,的确用工厂函数更合适一些。class A {} function classFactory(status){    return class extends A {} }var B = classFactory(status)通过工厂方法构建子类,那么所有的子类都是可追溯的了
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript