为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript 中如何获取子类?

JavaScript 中如何获取子类?

宝慕林4294392 2019-02-05 17:59:21
题,使用 es6 class 定义的类,如何获取指定基类的所有子类呢?例如下面定义了三个类 A, B, Cclass A {}class B extends A{}class C extends A{}吾辈如何获取到 A 的所有子类呢?(=^-ω-^=)有人说这个问题毫无意义,难道泥萌没有遇到过根据状态切换多种操作的情况么?难道一个一个的使用 if-else 判断会比使用 class 实现多态更优雅么?┐( ̄ヮ ̄)┌
查看完整描述

1 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

extends 只是一个"声明",真正起作用还是需要子类实例化的时候。
虽然子类实例化的时候会默认调用父类的constructor,并可以依此获取到子类实例,及其constructor,间接获取到子类class;
但看你需求好像并不能做到这一点,的确用工厂函数更合适一些。

class A {}
function classFactory(status){    return class extends A {}
}var B = classFactory(status)

通过工厂方法构建子类,那么所有的子类都是可追溯的了


查看完整回答
反对 回复 2019-02-05
  • 1 回答
  • 0 关注
  • 869 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信