Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在尝试删除eventHandler之前,是否有必要/建议检查它是否存在?_Javascript_Events - Fatal编程技术网

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也这么说,值得赞扬)。