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;