公布订阅模式
class EventEmitter { constructor() { this.cache = {} } // 注册事件 $on(eventType, fn) { // 增加事件 this.cache[eventType] = this.cache[eventType] || []; this.cache[eventType].push(fn); } // 触发事件 $emit(eventType) { if(this.cache[eventType]) { this.cache[eventType].forEach(handle=>{ handle(); }) } }}// 测试let eventEmitter = new EventEmitter();function f(){ console.log("Jason");}eventEmitter.$on('click' f);eventEmitter.$emit('click'); // Jason