lewenweijia / notes

🏊 dive dive diving
1 stars 0 forks source link

简易实现: EventEmitter #7

Open lewenweijia opened 4 years ago

lewenweijia commented 4 years ago
const EventEmitter = {
  events: {},
  on: (event, listner) => {
    if (!this.events[event]) {
      this.events[event] = { listener: [] }
    } else {
      this.events[event].listeners.push(listener);
    }
  },
  off: event => {
    delete this.events[event]
  },
  emit: (name, ...args) => {
    for (let i = 0; i < this.events[name].listeners.length; i++) {
      this.events[name].listeners[i](...args);
    }
  }
}