共计 912 个字符,预计需要花费 3 分钟才能阅读完成。
// 事件核心 事件派发 闭包
const EventBus = () => {let all = {} // 利用闭包的个性,实现 all 的状态治理
return {
all, // 事件 BUS
/*
* description 监听事件
* params type 事件名
* params handler 回调函数
* */
on: (type, handler) => {all[type] = handler
},
/*
* description 勾销监听某事件
* params type 事件名
* */
off: (type) => {delete all[type]
},
/*
* description 事件派发
* params type 事件名
* params event 派发的参数
* */
emit: (type, event) => {let handlers = all[type]
if (handlers) {handlers(event)
}
}
}
}
// use
let eventCenter = EventBus()
eventCenter.on('getName', (e) => {console.log('e', e)
})
eventCenter.on('getSex', (e) => {console.log('e', e)
})
eventCenter.emit('getName', {detail: '哈哈哈哈哈'})
eventCenter.off('getName')
eventCenter.emit('getName', {detail: '哈哈哈哈哈灌灌灌灌灌'})
eventCenter.emit('getSex', {detail: 'male'})
eventCenter.emit('getSex', {detail: 'female'})
eventCenter.off('getSex')
eventCenter.emit('getSex', {detail: 'unknow'})
eventCenter = null
eventCenter = EventBus()
eventCenter.on('getAge', (e) => {console.log('e', e)
})
eventCenter.emit('getAge', {detail: '12'})
eventCenter = null
正文完
发表至: javascript
2021-09-03