Наследовать выполнение статических блоков инициализатора в JavaScript

У меня есть код вроде:

      class A {
    static {
        console.log("A");
    }
}
class B extends A {
    static {
        console.log("B");
    }
}

Почему он не печатает дважды? Я хотел бы, чтобы в JavaScript выполнялся код класса всякий раз, когда он расширяется. Есть ли способ добиться этого?

Конечно, я мог бы просто добавить статический метод вAсам и вызываю его после объявленияB, но интересно, возможно ли это уже через ES2022.

1 ответ

Потому что он так задуман. Статический инициализатор вызывается только один раз для инициализируемого класса. Хотя это большой позор. Это позволило бы использовать перехватчик подклассов в Javascript, который совершенно отсутствует, если вы хотите избежать использования фабричных методов.

Другие вопросы по тегам