JavaScript Class 上的自定义事件
Custom Event on JavaScript Class
如何创建附加到 class 对象的事件?
我必须创建一个 class,其中包含一个应在特定时间调用的事件。 class 看起来像这样,并且应该在添加新事件时调用事件 newMember
。有效的是我将自定义事件附加到 window 并调用它,这不是我的目标。
不是 NodeJS。
class Room {
constructor() {
this.members = {}
}
addMember(data) {
if (!this.members[data.remotesid]) {
this.members[data.socket] = data.identity
//this.dispatchEvent();
} else {
console.log('Member already in room')
}
}
}
在被告知我需要用 EventTarget
扩展我的 class 之后。我现在已经找到了这个可行的解决方案。
class Room extends EventTarget {
#event;
constructor() {
super();
this.members = {}
}
addMember(data) {
if (!this.members[data.remotesid]) {
this.members[data.socket] = data
this.#event = new CustomEvent("newMember", { detail: data });
this.dispatchEvent(this.#event);
} else {
console.log('Member already in room')
}
}
}
var room = new Room();
room.addEventListener("newMember", function (e) {
console.log("newMember event ", e);
});
如何创建附加到 class 对象的事件?
我必须创建一个 class,其中包含一个应在特定时间调用的事件。 class 看起来像这样,并且应该在添加新事件时调用事件 newMember
。有效的是我将自定义事件附加到 window 并调用它,这不是我的目标。
不是 NodeJS。
class Room {
constructor() {
this.members = {}
}
addMember(data) {
if (!this.members[data.remotesid]) {
this.members[data.socket] = data.identity
//this.dispatchEvent();
} else {
console.log('Member already in room')
}
}
}
在被告知我需要用 EventTarget
扩展我的 class 之后。我现在已经找到了这个可行的解决方案。
class Room extends EventTarget {
#event;
constructor() {
super();
this.members = {}
}
addMember(data) {
if (!this.members[data.remotesid]) {
this.members[data.socket] = data
this.#event = new CustomEvent("newMember", { detail: data });
this.dispatchEvent(this.#event);
} else {
console.log('Member already in room')
}
}
}
var room = new Room();
room.addEventListener("newMember", function (e) {
console.log("newMember event ", e);
});