У меня есть класс Parent
(определенный с помощью объявления class
, хотя я знаю, что это в первую очередь синтаксический сахар) и несколько классов (Child1
, Child2
и т. Д.), Расширяющих его.Дочерним классам назначено статическое свойство (за пределами их объявлений - насколько я знаю, нет способа назначить статическое свойство в объявлении класса).
Я хотел бы получить доступ кстатическое значение любого дочернего класса из родительского класса, например, в методе getStaticValue()
.
class Parent {
constructor() {
//Do parent stuff
}
getStaticValue() {
return "The value of staticValue is " + this.staticValue;
}
}
class Child1 extends Parent {
constructor() {
super();
//Do child1 stuff
}
}
Child1.staticValue = "Child1";
class Child2 extends Parent {
constructor() {
super();
//Do child2 stuff
}
}
Child2.staticValue = "Child2";
Я хочу получить доступ к значению staticValue любого произвольного дочернего класса из родительского класса, однако пытаюсьсделать так, как написано выше, всегда возвращает неопределенное.Другими словами:
let parentStaticValue = new Parent().getStaticValue();
//Desired output = "The value of staticValue is undefined"
//Actual output = "The value of staticValue is undefined"
let child1StaticValue = new Child1().getStaticValue();
//Desired output = "The value of staticValue is Child1"
//Actual output = "The value of staticValue is undefined"
let child2StaticValue = new Child2().getStaticValue();
//Desired output = "The value of staticValue is Child2"
//Actual output = "The value of staticValue is undefined"
Есть ли способ получить доступ к статическому значению дочернего класса из родительского класса без необходимости знать имя дочернего класса в каждом случае?