JS事件监听器的内存消耗

时间:2019-07-17 16:02:14

标签: javascript

假设我需要在以下每个节点上添加相同的事件侦听器:

function handler(e) { ... }

var clickMe = document.querySelectorAll('.click-me');

for (var i = 0; i < clickMe.length; i++) {
  clickMe[i].addEventListener('click', handler);
}

在这种情况下,内存会增加吗?如果答案是肯定的,为什么?我在每一个中都使用相同的函数引用。是因为在引擎盖下它会执行以下操作:

class Div {
  listeners = {
    click: []
  }

  addEventListener(name, handler) {
    this.listeners[name].push(handler)
  }

}

这会导致数组变大吗?

我知道我们应该使用事件委托,但这不是我的问题。问题是,为什么是这种情况? (我不是在谈论可以随时间增加的动态DOM节点,而只是在内存方面)

0 个答案:

没有答案