Как вы получаете список всех детей класса в JavaScript?

1

У меня много классов, но по этому вопросу я немного упрощу это.

class A {

}

class B extends A {

}

class C extends A {

}

class D extends C {

}

Теперь мой вопрос: как вы получаете список (всех, а не только прямых) детей класса? Таким образом, A.getChildren() будет [B, C, D] и C.getChildren() будет [D]. Кстати, я ищу только чистые решения для JavaScript.

Возможно, это даже не возможно, и мне нужно подходить к этому совершенно по-другому, например, регистрировать каждый класс в своем родительском классе.

Итак, есть ли простая функция (написанная или просто встроенная), которая может это сделать, и если это даже не возможно, каким другим способом я должен решить эту проблему?

Теги:
class
inheritance

1 ответ

0

Если у вас есть контроль над конструктором A и если каждый класс создается хотя бы один раз, вы можете поместить строку в конструктор, который добавляет дочерний класс в Set:

const classes = new Set();
class A {
  constructor() {
    classes.add(this.constructor);
  }
}

class B extends A {

}

class C extends A {

}

class D extends C {

}
new B();
new B();
new C();
new D();
console.log([...classes]);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню