Я пытаюсь реализовать класс EventEmitter, который будет использоваться для передачи событий между компонентами MVC.Я довольно новичок в шаблоне MVC JavaScripts.
EventEmitter.js
export default class EventEmitter {
constructor() {
this._events = {};
}
static on(event, listener) {
(this._events[event] || (this._events[event] = [])).push(listener);
return this;
}
static emit(event, args) {
(this._events[event] || []).slice().forEach(listener => listener(args));
}
}
Однако, где бы я ни пытался генерировать некоторые события, он не работает, поскольку яполучить сообщение об ошибке:
TypeError: (промежуточное значение) .emit не является функцией
Вот как я хочу отправить свое событие из моего ModelClass.js :
import EventEmitter from "../EventEmitter.js";
export default class ModelClass extends EventEmitter {
constructor(options) {
super();
super.emit('test', options);
}
Обратите внимание, что я не хочу вызывать функцию emit, как в предыдущем случае, у меня есть разные методы внутри класса, где я хочу генерировать свои события, но для упрощенияПонимаю, я это здесь изложил, потому что в конструкторе он даже не работает.