Javascript 子类化events.EventEmitter不工作

Javascript 子类化events.EventEmitter不工作,javascript,node.js,eventemitter,Javascript,Node.js,Eventemitter,如何将EventEmitter子类化?我正在尝试以下测试: var util = require('util') ,events = require('events'); function Downloader() { events.EventEmitter.call(this); } util.inherits(Downloader, events.EventEmitter); console.log(new Downloader() instanceof events.E

如何将EventEmitter子类化?我正在尝试以下测试:

 var util = require('util')
   ,events = require('events');

function Downloader() {

    events.EventEmitter.call(this);
}
util.inherits(Downloader, events.EventEmitter);
console.log(new Downloader() instanceof events.EventEmitter); // true
Downloader.prototype.download = function(episode) {
    var self = this;

    var statusMessage = 'Downloading: ' + episode;
    self.emit('status', statusMessage);    

    setTimeout(function() {
        var finishedMessage = 'Downloaded ' + episode;
        self.emit('finished', finishedMessage);
    }, 5000);    
}

exports.Downloader = new Downloader();
节点抱怨“object”没有方法“on”。但是,当检查EventEmitter的Downloader instanceOf为时,返回true


有人能解释一下吗?谢谢

哦,天哪。首先,它应该是“module.exports”。其次,它的'instanceof'不是'instanceof'

我的错。这里有一个有效的例子

var util = require('util')
   ,events = require('events');

function Downloader() {

    events.EventEmitter.call(this);
}
util.inherits(Downloader, events.EventEmitter);

Downloader.prototype.download = function(episode) {
    var self = this;

    var statusMessage = 'Downloading: ' + episode;
    self.emit('status', statusMessage);    

    setTimeout(function() {
        var finishedMessage = 'Downloaded ' + episode;
        self.emit('finished', finishedMessage);
    }, 5000);    
}

module.exports = new Downloader();