Событие отправки из пользовательских объектов в JavaScript - PullRequest
0 голосов
/ 04 февраля 2020

Можно ли создавать собственные события в объектах? Примерно так

var myCustomClass = function (param) {
  this.param = param;
};

myCustomClass.prototype.start = function(){
//Do staff
//fire event started
let event = new Event("started", {isStarted: true});
  this.dispatchEvent(event);
}

И в мае. js создайте экземпляр myCustomClass

myCustomClass = new myCustomClassr(param);

myCustomClass.addEventListener('started', function () {
console.log("started");
});

myCustomClass.start();

С этим кодом я получаю сообщение об ошибке, сообщающее, что dispatchEvent не функция

1 Ответ

0 голосов
/ 04 февраля 2020

dispatchEvent доступно не для всех JavaScript объектов. Это очень выполнимо, но вам нужно наследовать от Event Emitter, чтобы у вашего класса была функция событий.

В JS есть миллионы вещей Event Emitter, и вы также можете довольно легко написать свой собственный.

https://netbasal.com/javascript-the-magic-behind-event-emitter-cce3abcbcef9

...