ES6 Static Class erweitert EventTargetJavaScript

Javascript-Forum
Anonymous
 ES6 Static Class erweitert EventTarget

Post by Anonymous »

Ich möchte eine Klasse erstellen, die EventTarget erweitert, sodass addEventListener () und DispatchEvent () darauf aufgerufen werden können. Wenn eine Seite versehentlich mehr als eine instanziieren würde, würde ihre Funktionalität brechen. Aus diesem Grund habe ich die Gesamtheit der Logik dieser Klasse als statische Felder und Methoden implementiert.

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.)

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post