簡體   English   中英

如何從 ES6 JavaScript 中的 object 發出自定義事件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM