class EventEmitter {
constructor() {
this.events = {};
}
// 添加监听器
on(event, listener) {
if (!this.events[event]) {
this.events[event] = [];
}
this.events[event].push(listener);
}
// 移除监听器
off(event, listener) {
if (!this.events[event]) return;
this.events[event] = this.events[event].filter((l) => l !== listener);
}
// 触发事件
emit(event, ...args) {
if (!this.events[event]) return;
this.events[event].forEach((listener) => listener(...args));
}
}
// 使用示例
const emitter = new EventEmitter();
function listener(data) {
console.log('接收到数据:', data);
}
emitter.on('testEvent', listener);
emitter.emit('testEvent', { key: 'value' });
emitter.off('testEvent', listener);
emitter.emit('testEvent', { key: 'value' }); // 不会触发监听器
Js 实现一个事件管理
于 2025-01-21 19:44:23 首次发布