0

是否可以在对象中创建自定义事件?像这样的东西

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);
}

并在 mai.js 创建一个实例myCustomClass

myCustomClass = new myCustomClassr(param);

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

myCustomClass.start();

使用此代码,我收到一条错误消息,告诉我这dispatchEvent不是函数

4

1 回答 1

0

dispatchEvent 并非在所有 JavaScript 对象上都可用。这是非常可行的,但是您需要从 Event Emitter 继承,因此您的类具有事件功能。

JS 中有无数的 Event Emitter 东西,你也可以很容易地编写自己的东西。

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

于 2020-02-04T15:37:45.650 回答