我正在研究这个事件发射器 javascript 问题,有人可以帮助我了解如何在不向其传递任何参数的情况下实现 release() 吗?
下面的代码应该能够根据类型将事件添加到数组中。在接受任意数量的参数时按类型触发事件,并使用引用释放(取消订阅)事件,只需调用sub.release().
这是我迄今为止实施的,我感谢任何反馈: https ://jsfiddle.net/280toksn/1/
class Emitter {
constructor() {
this.events = {};
}
subscribe = (type, fn) => {
if(this.events[type] === undefined) {
this.events[type] = [];
}
this.events[type].push(fn);
return this;
}
emit = (type,...args) => {
for(let i=0; i < this.events[type].length; i++) {
this.events[type][i](...args);
}
}
release = () => {
}
}