我一直在尝试将节点 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 模式来做到这一点。有没有人有什么建议?