仿写nodejs的events.EventEmitter,实现了其中的大部分方法.
可以用的方法如下所示(具体用法和nodejs基本一样):
on(event:string, callback:Function):booleanonce(event:string, callback:Function:booleanemit(event:string, ...args:Array<any>):booleanlistenerCount(event:string):numberremoveListener(event:string, func:Function):booleanremoveAllListener(event:string):booleansetDefaultListenerCount(n:number=10):booleangetDefaultListenerCount():number
传入参数
var ev = new EventEmitter();
ev.on('test',function(x,y,z){
console.log(x+y+z)
}
)
ev.emit('test',1,2,3)
==> 6
简单的来说,就是传给事件处理程序的参数,会被收集到一个变量中
- 不同于
nodejs里的events.EventEmitter,使用该类注册的事件处理程序中的this并不会指向EventEmitter的实例(具体请看nodejs文档)