node.jsで行っている作業用のコンストラクター関数を作成したいと思います。特に、イベントエミッターを使用して作成されたインスタンスの数をログに記録したいと思います。現時点では、コンストラクターオブジェクトにイベントエミッターであるメソッドを与えることでこれを行っています。例えば:
var EventEmitter = require('events').EventEmitter;
function MyObject() {
...
MyObject.events.emit('createdMyObject')
}
MyObject.events = new EventEmitter();
/* somewhere else... */
MyObject.events.on('createdMyObject', function () {
// Do something when a new instance is created.
});
私が本当に望んでいるのは、コンストラクターがイベントをより直接的に発行することです。そのため、次のようなものでイベントをリッスンできます。
MyObject.on('createdMyObject', function () {
// Do something when a new instance is created.
});
これを行う方法はありますか?
インスタンスがイベントエミッターである必要はないことに注意してください(グーグルで検索すると、この例がたくさんあります)。他のオブジェクト指向言語の用語では、クラスメソッドと同等のものが必要です。