我一直在尝试将节点 events.EventEmitter 与我的 amdefine 模块(显示模块模式)一起使用。我有一段工作代码,我在其中实现了一个“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 模式来做到这一点。有没有人有什么建议?