![](/img/trans.png)
[英]In Node/raw ES6, how could I emit an event from a parent class and trigger an event in the child class from their respective constructors?
[英]How to emit a custom event from an object in ES6 JavaScript
我有一個自定義 object,我希望能夠發出和收聽自定義事件。
類似於以下簡單示例:
class My_Obj{
constructor(){
this.val = 7;
}
doSomething(){
if (this.val <= 0){
//Emit "done" event
}
else{
this.val--;
}
}
}
/* Somewhere else in the code */
let newObj = new My_Obj();
newObj.addEventListener('done', ()=>{console.log("Finished")});
我看到的大多數示例都使用 NodeJ、JQuery,或者不使用對象和類。 我知道有一種方法可以創建let myEvent = new Event('done')
但我不確定在使用 class 時將其放在哪里。
let event = new Event("Done"); class MyClass { constructor(x) { this.x = x; this.domObj = document.createElement("div"); } doSmth() { if (this.x <= 0) { this.dispatchEvent(event); } else { this.x++; } } addEventListener(listenerName, cb) { this.domObj.addEventListener(listenerName, cb); } dispatchEvent(event) { this.domObj.dispatchEvent(event); } } let e = new MyClass(10); e.addEventListener("Done", function() { console.log(1); }); ex = 0; e.doSmth();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.