function Emitter(){ | |
this.listeners = []; | |
} | |
var p = Emitter.prototype; | |
p.addListener = function( event, callback ){ | |
this.listeners.push({ | |
event: event, | |
callback: callback | |
}); | |
}; | |
p.removeListener = function( event, callback ){ | |
for( var i = this.listeners.length; i >= 0; i-- ){ | |
var l = this.listeners[i]; | |
if( l.event === event && l.callback === callback ){ | |
this.listeners.splice( i, 1 ); | |
} | |
} | |
}; | |
p.emit = function( event, data ){ | |
for( var i = 0; i < this.listeners.length; i++ ){ | |
var l = this.listeners[i]; | |
if( event === l.event ){ | |
l.callback( data ); | |
} | |
} | |
}; | |
module.exports = Emitter; | |