class EventManager { constructor() { this.eventMap = {}; } /** * 注册事件 * @param {string} eventName - 事件名称 * @param {function} callback - 事件回调函数 */ on(eventName, callback) { if (!this.eventMap[eventName]) { this.eventMap[eventName] = []; } this.eventMap[eventName].push(callback); } /** * 触发事件 * @param {string} eventName - 事件名称 * @param {...any} args - 事件参数 */ emit(eventName, ...args) { if (this.eventMap[eventName]) { this.eventMap[eventName].forEach(callback => callback(...args)); } } /** * 移除事件 * @param {string} eventName - 事件名称 * @param {function} callback - 事件回调函数 */ off(eventName, callback) { if (this.eventMap[eventName]) { this.eventMap[eventName] = this.eventMap[eventName].filter(cb => cb !== callback); } } } export default new EventManager();