/**
* NODE.JS事件模块笔记
* S1.访问事件模块
* var EventEmitter = require('events').EventEmitter;
* var eventEmitter = new EventEmitter();
* S2.事件模块主要API
* P1.绑定事件
* 事件绑定
* eventEmitter.on/addListener((var)eventName,(fun)listener);
* 事件绑定,只触发一次,触发一次后移除监听
* eventEmitter.once((var)eventName,(fun)listener);
* 事件绑定
* eventEmitter.prependListener((var)eventName,(fun)listener);
* 事件绑定,只触发一次
* eventEmitter.prependOnceListener((var)eventName,(fun)listener);
* prependListener、prependOnceListener分别对应on、once,区别在于prepend*方法将监听器插入到监听器列表的开头,优先执行。
* on/once依次阻塞执行,先添加先执行,prependListener、prependOnceListener添加到表头,后添加先执行。
*
* P2.事件触发
* 事件触发,事件没有执行返回false
* eventEmitter.emit((var)eventName, [arg1], [arg2], [...])
*
* P3.事件设置
* 事件设置,设置最大可以设置的监听事件数量,默认是10
* eventEmitter.setMaxListeners(n)
*
* P4.事件移除
* 事件移除-一个
* eventEmitter.removeListener((var)eventName, (fun)callbackListener)
* 事件移除-全部,eventName为空移除全部
* eventEmitter.removeAllListeners((var)eventName)
*
* P4.事件获取
* 事件获取,返回eventName事件数组
* eventEmitter.listeners((var)eventName)
*
* 其他
* 监听添加新事件
* eventEmitter.addListener('newListener',(fun)listener)
*
* 参考:
* https://nodejs.org/api/events.html#events_event_newlistener
* http://www.cnblogs.com/zhongweiv/p/nodejs_events.html
* http://blog.csdn.net/zccz14/article/details/51463715
*/