Wie löst man 'dies ist nicht definiert' wenn man EventEmitter erweitert? [Duplikat]

8

Der folgende Code schlägt fehl:

%Vor%

und druckt Fehler

%Vor%

Wenn ich EventEmitter jedoch nicht erweitere, funktioniert es einwandfrei.

Warum passiert das und wie kann ich es lösen? läuft nodejs 4.2.1

    
guy mograbi 22.01.2016, 13:05
quelle

1 Antwort

16

Wenn Sie eine andere Funktion erweitern, sollte super(..) der erste Ausdruck in Ihrem constructor sein. Nur dann können Sie this verwenden.

%Vor%

Es ist so, weil die Klasse, von der Sie abgeleitet sind, eine Chance haben sollte, die Variablen zu setzen, bevor die aktuelle Klasse sie außer Kraft setzt.

Das implizite Aufrufen von super() bedeutet auch, dass wir undefined an die Parameter übergeben, die in constructor des übergeordneten Elements deklariert sind. Deshalb wird es standardmäßig nicht gemacht.

    
thefourtheye 22.01.2016 13:13
quelle