- 1发布和订阅是什么? 发布和订阅一种设计模式(套路)
const eventHub = {
map:{},
on:(name,fn)=>{
eventHub.map[name] = eventHub.map[name] || []
//defenece code
eventHub.map[name].push(fn)
},
emit:(name,data)=>{
eventHub.map[name].map(f=>f.call(null,data))
},
off:(name,fn)=>{
if(!eventHub.map[name]){return}
const index = eventHub.map[name].indexOf(fn)
if(index<0){return}
eventHub.map[name].splice(index,1)
},
}
eventHub.on('click',console.log)
eventHub.on('click',console.error)
setTimeout(()=>{eventHub.emit('click','XXX')
},3000)
数据结构>算法,理解的数据结构越多,抽象能力越强
复习了一下map的用法
map[name].indexOf(xxx)
eventHub.map[name].splice(index.1)
eventHub.map[name].map(f=>f.call(null,data))