2013-05-21 9 views
5

他は(official documentationを)それを使用している間、カスタムイベント・エミッター・コンストラクタでevents.EventEmitter.call(this)を使用していない例がたくさんあります。カスタムEventEmitterを作成するときにevents.EventEmitter.call(this)が必要ですか?

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

私はそれを必要とする場合、私は知らないのJavaScriptの私の基本的な理解では。 EventEmitterの内部の初期化に必要なコールはありますか?

答えて

5

はい、そうです。

ノード0.10より前では、それを忘れると壊れません。今

it will

持つEventEmitterコンストラクタは現在、さまざまなプロパティを初期化します。それはOOPの継承親としてもうまく動作しますが、継承を適切に行う必要があります。 Broken-Style JS継承パターンは、EventEmitterクラスを拡張するときには機能しません。この継承スタイルは決してサポートされませんでしたが、0.10より前は実際には破られませんでした。

関連する問題