主要分成两个部分 on 和 emit
on 将一些函数维护到一个数组中
emit 让数组中的方法依次执行
特点:需要一个数组中介来完成,并且on和emit之间没有必然联系
核心代码:
let onEmit = {
arr: [],
on(fn) {
this.arr.push(fn);
},
emit() {
this.arr.forEach((fn) => fn());
},
};
举个房屋租赁的例子
订阅事件:
onEmit.on(() => {
console.log('有人来租房通知我一下');
});
onEmit.on(() => {
console.log('如果价格不行再商量商量');
});
有人来触发:
(function ziRu() {
onEmit.emit();
})();