要实现观察者模式 , 需要5个部分的操作
有一个主体对象 |
有一个属性(消息盒子),是存储事件 |
有一个方法(on方法),向属性中写入事件 |
有一个方法(emit方法),执行属性中写入的事件 |
有一个方法(off方法),删除属性中写入事件 |
// 基本代码
// 通过构造函数来实现,创建主体对对象
// 观察者模式构造函数
// 向on()方法中,写入对应的程序
// on()方法,是将需要执行的事件,写入到消息盒子中
class Observer{
constructor(){
// 可以是数组,可以是对象,操作方式相同
// this.message = [];
this.message = {};
}
// 事件1:on()方法,向消息盒子中,添加事件
// on()方法的参数
// 参数1 : 需要执行的事件的类型
// 参数2 : 需要执行的事件的内容
on(type,fun){
// 实现思路
// 如果事件类型已经存在 例如,已经有了打电话类型
// 只需要向打电话中,添加执行的对象,例如老爸,老妈...
// 如果没有打电话这个类型,需要先建立一个打电话类型,并且写入存储的数据数据
// 判断 事件的类型,是否存在
// 如果事件类型存在 this.message[type] 执行结果就有对应的内容 --- 转化为布尔值 true
// 如果事件类型不存在 this.message[type] 执行结果是undefined --- 转化为布