用EventProxy,绑定监听事件,如果一直没触发,是不是监听会一直保留?
用EventProxy,绑定监听事件,如果一直没触发,是不是监听会一直保留? 如果程序运行多次,会产生过个监听事件。会不会浪费系统资源?
4 回复
写个最简单的EventProxy,实际上本质就是这样的
class EventProxy {
_events = {}
on(event, fn) {
this._events[event] = fn;
}
emit() {
this._events[arguments[0]].apply(this, [].slice.call(arguments, 1));
}
}
var eventProxy = new EventProxy();
eventProxy.on('add', (name, age)=> {
console.log(name, age);
});
eventProxy.emit('add', 'jacky', 10);
监听就是保存某个函数,触发就是执行某个函数而已。一直不触发,占据的就是一小块内存而已。