2013-05-21 6 views
5

Es gibt viele Beispiel nicht events.EventEmitter.call(this) in benutzerdefinierten Ereignis-Emitter-Konstrukteure verwenden, während andere es verwenden (official documentation):Ist events.EventEmitter.call (this) erforderlich, wenn ein benutzerdefinierter EventEmitter erstellt wird?

var events = require('events') 
    , util = require('util'); 

var MyEmitter = function() { 
    events.EventEmitter.call(this); 
}; 

util.inherits(MyEmitter, events.EventEmitter); 

MyEmitter.prototype.write = function() { 
    this.emit('tick'); 
}; 

Mit meinem grundlegenden Verständnis von JavaScript Ich weiß nicht, ob ich es brauche. Ist der Aufruf notwendig, um die Initialisierung innerhalb der EventEmitter?

Antwort

5

Ja, ist es.

Vor Node 0.10 würde es nicht brechen, wenn Sie das vergessen. Jetzt

, it will:

Der EventEmitter Konstruktor initialisiert nun verschiedene Eigenschaften. Es funktioniert immer noch gut als OOP-Vererbung Eltern, aber Sie müssen die Vererbung richtig machen. Das JS-Vererbungsmuster von Broken-Style funktioniert nicht, wenn die EventEmitter-Klasse erweitert wird. Dieser Vererbungsstil wurde nie unterstützt, aber vor 0.10 brach er nicht wirklich.

Verwandte Themen