重写事件抛发接收机制原理
关于js中事件侦听和抛发机制的一些基础简单重构,通过这个简单重构了解中介者模式的工作方式,以下就是要做的简单重构方案
思路:
创建EmitterTarget类和EmitterEvent类。
EmitterTarget类主要使用了中介模式+观察者模式
其中EmitterTarget类的实例化属性list充当中介角色,每当执行add方法时,给EmitterTarget类的实例化对象注册事件名称及触发函数;每当该对象执行remove方法时,从list列表中移除注册的事件及触发函数;
dispatchEvent方法主要是发送事件对象本体,目的是为了在指定时刻触发事件函数以及传递数据参数。
==EmitterTarget类实例化对象本身就是观察者,观察者的特点是有add,remove,触发改变的函数(update或这里的dispatchEvent),以及应该有用于存放注册信息的属性或者单例对象。
==EmitterEvent类主要是用来创建事件对象本身,在创建时声明需要触发的事件类型以及需要携带的参数。
EmitterTarget.ts代码如下:
EmitterTarget.ts代码如下:
使用demo:
1.定义需要使用事件抛发的类
2.具体抛发操作

浙公网安备 33010602011771号