在模块events中,定义了一个EventEmitter,可以使用var EventEmitter = require('events');
访问它。基本上所有发送事件的对象都是继承自EventEmitter。有基本属性和方法如下。
- setMaxListeners(n)
设置事件的最大监视者数量 - getMaxListeners(n)
获取事件的最大监视者数量 - on(event, listener)/addListener(event, listener)
为事件增添一个监视者 - once(event, listener)
为事件增添一个一次监视者 - removeListener(event, listener)
为事件删除一个监视者,注意listener指向同一个事件监听函数。 - removeAllListeners([event])
如果无参数,移除所有事件的监视者。如果参数为event,移除该事件的监视者。 - listenerCount(event)
获取特定事件的监视者数量。 - listeners(event)
获取特定事件的监听者列表。 - _eventsCount
事件的数量
1 | var EventEmitter = require('events'); |
写一个继承EventEmitter的对象。使用 util.inherits()
来完成对象的继承。
1 | var EventEmitter = require('events'); |
再用ES6的class重写一下继承,发现es6的语法糖挺简单的。
1 | var EventEmitter = require('events'); |