Javascript 在尝试删除eventHandler之前,是否有必要/建议检查它是否存在?
我有这样的想法:Javascript 在尝试删除eventHandler之前,是否有必要/建议检查它是否存在?,javascript,events,Javascript,Events,我有这样的想法: if (something) { init(); } else { document.addEventListener('CUSTOM_EVENT', init, false); } var init = function() { document.removeEventListener('CUSTOM_EVENT', init, false); // do stuff } 我是否需要对removeEventListener调用添加某种检查?
if (something) {
init();
} else {
document.addEventListener('CUSTOM_EVENT', init, false);
}
var init = function() {
document.removeEventListener('CUSTOM_EVENT', init, false);
// do stuff
}
我是否需要对removeEventListener
调用添加某种检查?如果是这样,我可以做:
var eventAdded = false;
if (something) {
init();
} else {
document.addEventListener('CUSTOM_EVENT', init, false);
eventAdded = true;
}
var init = function() {
if (eventAdded) {
document.removeEventListener('CUSTOM_EVENT', init, false);
}
// do stuff
}
但这感觉有点不雅。如果没有什么大不了的,我宁愿留下原始的removeEventListener调用,或者尽可能做一些不需要外部var的事情。
使用不标识EventTarget上任何当前注册的EventListener的参数调用removeEventListener()无效
+1参考文档链接可能是更好的参考首选(尽管MDN也这么说,值得赞扬)。