/** * 自定义事件工厂 */export default { map: {}, $emit(name, params) { if (this.map[name] == null) { console.log("没有找到关于" + name + "的事件,无法触发"); } else { this.map[name].detail = params; window.dispatchEvent(this.map[name]); } }, $on(name, work) { // 阻止重复监听 let filterMaps = Object.keys(this.map).filter(key => { return key == name; }); if (filterMaps.length > 0) { return; } let myEvent = new Event(name); this.map[name] = myEvent; window.addEventListener(name, (event) => { work(this.map[name].detail); }); },};