2013-05-21 7 views
5

Istnieje wiele przykład nie używając events.EventEmitter.call(this) w niestandardowych konstruktorów emiterów zdarzeń, podczas gdy inne są przy użyciu go (official documentation):Czy zdarzenia.EventEmitter.call (this) są wymagane podczas tworzenia niestandardowego EventEmitter?

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'); 
}; 

Z moich podstawowych rozumienie JavaScript ja nie wiem, czy jest to potrzebne. Czy wywołanie jest niezbędne do inicjowania rzeczy wewnątrz EventEmitter?

Odpowiedz

5

Tak, jest.

Przed węzłem 0.10, nie pęknie, jeśli tego nie zrobisz.

Teraz it will:

Konstruktor EventEmitter inicjuje różne właściwości teraz. Nadal działa dobrze jako rodzic dziedziczący OOP, ale musisz właściwie dziedziczyć. Wzorzec dziedziczenia JS typu Broken-Style nie będzie działał podczas rozszerzania klasy EventEmitter. Ten styl dziedziczenia nigdy nie był obsługiwany, ale przed wersją 0.10 nie został przerwany.

Powiązane problemy