

移除所有监听器,如果指定event,则将移除指定事件的所有监听器。
语法:
 代码如下:
emitter.removeAllListeners([event])
接收参数:
event 事件类型,支持多个
例子:
 代码如下:
//移除所有监听器
 
emitter.removeAllListeners()
 
//移除指定event的所有监听器
 
emitter.removeAllListeners('data')
源码:
 代码如下:
EventEmitter.prototype.removeAllListeners = function(type) {
 var key, listeners;
 if (!this._events)
 return this;
 // not listening for removeListener, no need to emit
 if (!this._events.removeListener) {
 if (arguments.length === 0)
 this._events = {};
 else if (this._events[type])
 delete this._events[type];
 return this;
 }
 // emit removeListener for all listeners on all events
 if (arguments.length === 0) {
 for (key in this._events) {
 if (key === 'removeListener') continue;
 this.removeAllListeners(key);
 }
 this.removeAllListeners('removeListener');
 this._events = {};
 return this;
 }
 listeners = this._events[type];
 if (util.isFunction(listeners)) {
 this.removeListener(type, listeners);
 } else {
 // LIFO order
 while (listeners.length)
 this.removeListener(type, listeners[listeners.length - 1]);
 }
 delete this._events[type];
 return this;
};
 
