Code: Select all
class MyClass extends EventTarget {
static dispatch(type) { MyClass.dispatchEvent(new Event(type)); }
}
MyClass.dispatch('hello');
< /code>
Uncaught TypeError: MyClass.dispatchEvent is not a function
Ich habe es auch versucht:
Code: Select all
class MyClass extends EventTarget {
static dispatch(type) { MyClass.prototype.dispatchEvent(new Event(type)); }
}
MyClass.dispatch('hello');
< /code>
Uncaught TypeError: 'dispatchEvent' called on an object that does not implement interface EventTarget.
Es muss etwas mit Konstruktoren und Prototypen vorhanden sein, um die Methoden von EventTarget direkt in MyClass zu bringen. Könnte mich jemand aufklären, wie ich das durchdenken muss? (Abgesehen von dem unangenehmen Hack, eine statische Klassenvariable zu deklarieren, die ein EventTarget enthält und Dinge an/von diesem weiterleitet.)