Open liam61 opened 5 years ago
大佬,如果on的callback是个匿名函数,就无法off了咋办
@linfanxxxx 这个模拟的是 dom2 的方法,一般都是用带名的,你可以回想 button 如何定义事件的 div.addEventListener('click', fn); div.removeEventListener('click', fn); 当然你也可以用 dom0 级事件,div.onclick = null; 这样回收机制机就会清理内存了
大佬,我想问一下你是社招还是校招啊。还有就是这是观察者模式还是发布订阅啊,在我印象里面,发布者和订阅者在互相能知晓的情况下,应该是观察者啊。
@AqingCyan 校招。观察者和订阅发布模式是有区别的,主要是看有无中介者来传递消息,也就是像你说的是否能相互感知,但平时的话也可以不做区分,这里手撸的事件的话算是观察者模式
手撸一个事件机制
关键词:发布-订阅模式
其实核心就是维护一个对象,对象的 key 存的是事件 type,对应的 value 为触发相应 type 的回调函数,即 listeners,然后 trigger 时遍历通知,即 forEach 进行回调执行。