amdefine モジュール (Revealing Module Pattern) で node events.EventEmitter を使用しようとしています。「on」関数を実装し、これを EventEmitter に渡す作業コードがあります。
if (typeof define !== 'function') {
var define = require('amdefine')(module);
}
define(function (require) {
var events = require('events');
var emitter = new events.EventEmitter();
function doSomething(strParam) {
console.log('doSomething: ' + strParam);
emitter.emit('done');
}
return {
do: function(strParam) {
doSomething(strParam);
},
on: function(event, callback) {
emitter.addListener(event, callback);
}
}
});
これは仕事をします。ただし、代わりに継承を行う方がよいように思われるため、すべての EventEmitter プロパティを利用できます。
[mycode].prototype.__proto__ = events.EventEmitter.prototype;
しかし、上記の RMP パターンでこれを行う方法がわかりません。誰か提案はありますか?