一、写在前面
手写event
模块,我们需要手写一些方法,比如说:addEventListener
,removeListener
,once
,removeAllListener
,emit
。
二、手写
function EventEmitter() {
this.events = new Map()
}
//需要封装的方法addListener, removeListener, once, removeAllListener, emit
const wrapFunc = function (fn, once = false) {
return {
callback: fn,
once
}
}
EventEmitter.prototype.addListener = function (type,