TypeScript, wie man Ereignisbehandlungsroutinen für Klassenmethoden auf "diese" Instanz beschränkt

9

Ich habe ein Problem mit Classes in TypeScript. Jedes Mal, wenn ich ein HTML-Element-Ereignis anhören muss, muss ich Function.bind () verwenden, um es mit der aktuellen Instanz zu verbinden.

%Vor%

Ich muss die gebundene anonyme Funktion nicht jedes Mal speichern, wenn Sie 5-10 Ereignisse haben, wird es ein Chaos. Ich möchte es einfach gebunden haben.

irgendwelche Vorschläge?

    
Nisim Joseph 26.11.2016, 19:13
quelle

1 Antwort

10

Sie können Pfeilfunktionen für die Listener-Methoden verwenden:

%Vor%

Dies funktioniert gut, es sei denn, Sie möchten diese Klasse erweitern und eine dieser Methoden überschreiben.
Der Grund dafür ist, dass Sie mit Pfeilfunktionen keine Methoden haben, sondern nur Eigenschaften, denen Pfeilfunktionen zugeordnet sind, die nicht Teil des Prototyps sind.

Zum Beispiel:

%Vor%

Kompiliert zu:

%Vor%

Wenn Sie also keine Möglichkeit haben, eine dieser Methoden einfach zu überschreiben, verwenden Sie diese Methode.

Wenn Sie bei Methoden bleiben möchten, aber nicht alle Methoden manuell binden möchten, können Sie:

%Vor%

Sie können auch den Funktionsnamen und die Methoden, die Sie binden möchten, vorgeben.

    
Nitzan Tomer 26.11.2016 19:34
quelle