看这里http://nodejs.org/docs/latest/api/events.html#events_emitter_addlistener_event_listener
emitter.addListener(event, listener)
emitter.on(事件,监听器)
为指定的监听器数组的末尾添加一个监听器
事件。不检查监听器是否已经
添加。多个调用传递相同的事件组合和
listener 将导致 listener 被多次添加。
server.on('connection', function (stream) { console.log('someone
connected!'); }); Returns emitter, so calls can be chained.
通常用http://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor添加到对象
util.inherits(constructor, superConstructor)# 继承原型
从一个构造函数到另一个构造函数的方法。的原型
构造函数将被设置为从 superConstructor 创建的新对象。
为方便起见,superConstructor 将是可访问的
通过constructor.super_属性。
var util = require("util"); var events = require("events");
function MyStream() {
events.EventEmitter.call(this); }
util.inherits(MyStream, events.EventEmitter);
MyStream.prototype.write = function(data) {
this.emit("data", data); }
var stream = new MyStream();
console.log(stream instanceof events.EventEmitter); // true console.log(MyStream.super_ === events.EventEmitter); // true
stream.on("data", function(data) {
console.log('Received data: "' + data + '"'); }) stream.write("It works!"); // Received data: "It works!"
对于您的 irc-bot,您可以在 https://github.com/martynsmith/node-irc/blob/master/lib%2Firc.js 第 603 行找到 thid sting
util.inherits(Client, process.EventEmitter);
和像
这样的构造触发的事件
self.emit('connect'); // same file L:665