日期:2014-05-16  浏览次数:20358 次

window.addEventListener和 window.removeEventListener对应关系问题
window.addEventListener('load', function loadSettings(evt) {
  window.removeEventListener('load', loadSettings); //为什么刚刚绑定了监听又要解除绑定,这样会不会影响后续函数的执行?
  window.addEventListener('change', Settings);
  window.addEventListener('click', Settings);
  Settings.init();
});

------解决方案--------------------
纯属个人理解:

1、为什么刚刚绑定了监听又要解除绑定?

解除绑定是为了解除loadSettings与load的关系,释放内存。

2、这样会不会影响后续函数的执行?

不会影响,这仅仅是一个调用函数的过程,在这个接触绑定之后将不再触发loadSettings
------解决方案--------------------
解除有时候是为了程序只运行一次
------解决方案--------------------
探讨

纯属个人理解:

1、为什么刚刚绑定了监听又要解除绑定?

解除绑定是为了解除loadSettings与load的关系,释放内存。

2、这样会不会影响后续函数的执行?

不会影响,这仅仅是一个调用函数的过程,在这个接触绑定之后将不再触发loadSettings

------解决方案--------------------
是为了清除之前绑定的事件