1

I have code like:

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

Why doesn't it print A twice? I would like a way in JavaScript to execute code of a class whenever it is extended. Is there any way to achieve this?

Of course I could just add a static method in A myself and call it after declaring B, but I wonder if this is already possible via ES2022.

kungfooman
  • 4,473
  • 1
  • 44
  • 33

1 Answers1

0

Because it is designed like that. The static initializer is only called once for the class that is initialized. It's a big shame though. It would have enabled a subclassing hook in Javascript which is absolutely missing if you want to avoid the use of factory methods.

Rick
  • 1