Hier verwendet wird, ist der Code:Warum statische Methoden können nicht in Instanzmethoden oder Konstruktor
class Foo {
static m() {
console.log('m');
}
}
class Bar extends Foo {
b() {
super.m();
}
}
var b = new Bar();
b.b();
, die wirft:
Uncaught TypeError: (intermediate value).m is not a function
Diese Art von Fehler wird generiert, wenn ich Eltern zu verwenden versuchen, statische Klassenmethoden in einer Instanzmethode oder einem Konstruktor. Warum?
Wie ich verstehe, bezieht sich super
auf die Foo
und die folgenden Werke OK:
class Bar extends Foo {
b() {
Foo.m();
}
}
weil 'm' nicht zu einer Instanz gehören:
Mehr zu diesem Thema finden Sie hier ? 'Foo.m();' – Igor
@Igor, siehe mein Update –
@Jonasw Sie erstellen keine neue Instanz von foo. Es gibt nur eine Instanz ('this'). – estus