如何在ES6 JavaScript中从对象发出自定义事件
我有一个自定义对象,我希望能够发出和侦听自定义事件 类似以下简单示例:如何在ES6 JavaScript中从对象发出自定义事件,javascript,events,event-handling,Javascript,Events,Event Handling,我有一个自定义对象,我希望能够发出和侦听自定义事件 类似以下简单示例: class My_Obj{ constructor(){ this.val = 7; } doSomething(){ if (this.val <= 0){ //Emit "done" event } else{ this.val--; }
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")});
class My_Obj{
构造函数(){
这个值=7;
}
doSomething(){
if(this.val{console.log(“Finished”)});
我看到的大多数示例都使用NodeJs、JQuery或不使用对象和类。我知道有一种方法可以创建让myEvent=new Event('done')
,但我不确定在使用类时将其放在何处。
let event=新事件(“完成”);
类MyClass{
构造器(x){
这个.x=x;
this.domObj=document.createElement(“div”);
}
doSmth(){
如果(这个.x
let event=新事件(“完成”);
类MyClass{
构造器(x){
这个.x=x;
this.domObj=document.createElement(“div”);
}
doSmth(){
如果(这个.x似乎不起作用。没有错误或任何东西,但我的回调没有运行。如果我从另一个文件导入该类,这会影响事情吗?很难回答,因为我看不到你的代码,所以我建议你像这样制作自己的发射器或smth,因为我的解决方案在这种情况下是非常错误的。这似乎不起作用。没有错误或任何东西,但我的回调没有运行。如果我从另一个文件导入该类,这会影响事情吗?很难回答,因为我看不到您的代码,所以我建议您制作自己的发射器或smth,因为我的解决方案在这种情况下是非常错误的。您可以自己实现回调机制,也可以使用回调机制“我知道有一种方法可以创建let myEvent=new event('done')
”-这里的event
指的是什么?@Bergi我不知道,这里说的就是:那一页是关于分派(定制)的DOM元素上的事件,而不是任意对象上的事件。例如,它在nodejs中不可用。要么自己实现回调机制,要么使用许多事件发射器库中的一个。“我知道有一种方法可以创建让myEvent=new event('done')
”-这里的Event
指的是什么?@Bergi我不知道,只是这里说的:该页面是关于在DOM元素上调度(自定义)事件,而不是在任意对象上。例如,它在nodejs中不可用。