如题,使用 es6 class 定义的类,如何获取指定基类的所有子类呢?例如下面定义了三个类 A, B, Cclass A {}class B extends A{}class C extends A{}吾辈如何获取到 A 的所有子类呢?(=^-ω-^=)有人说这个问题毫无意义,难道泥萌没有遇到过根据状态切换多种操作的情况么?难道一个一个的使用 if-else 判断会比使用 class 实现多态更优雅么?┐( ̄ヮ ̄)┌
1 回答
慕田峪9158850
TA贡献1794条经验 获得超7个赞
extends 只是一个"声明",真正起作用还是需要子类实例化的时候。
虽然子类实例化的时候会默认调用父类的constructor,并可以依此获取到子类实例,及其constructor,间接获取到子类class;
但看你需求好像并不能做到这一点,的确用工厂函数更合适一些。
class A {} function classFactory(status){ return class extends A {} }var B = classFactory(status)
通过工厂方法构建子类,那么所有的子类都是可追溯的了
添加回答
举报
0/150
提交
取消