javascript - removeEventListener - 函数定义本身内的回调?
问题描述
我有以下代码,在其中向文档添加了一个事件侦听器,然后将其删除。
document.addEventListener("keypress", gameStart);
function gameStart() {
document.querySelector("h1").innerHTML = "Level 1";
document.querySelector("h2").style.visibility = "hidden";
document.removeEventListener("keypress", gameStart);
}
我无法理解如何在 gameStart() 本身的定义中的 removeEventListener 方法中对 gameStart 进行回调。这对我来说似乎是循环的,但我觉得我在这里误解了一些基本的东西。我错过了什么?
解决方案
在removeEventListener
文档中我们可以看到:
target.removeEventListener(type, listener[, options]); target.removeEventListener(type, listener[, useCapture]);
...
listener要从事件目标中删除的事件处理程序
的EventListener
调用时不会调用该EventListener
函数(在您的情况下gameStart
removeEventListener
) ,因此没有任何循环调用或递归,它被传递给removeEventListener
该函数,因此可以从该事件中注销该函数。
推荐阅读
- python - __str__ 在下面的代码中做了什么?列出的两个代码是不同的
- android - FCM 推送通知在设备休眠时重新唤醒应用程序无效
- laravel - Laravel中的动态轮播不显示正确的数据
- python-3.x - 读取文本文件的每一行,删除特定字符串之前的所有字符,然后在 Python 中另存为新文件
- angular - 如何为类属性赋值?
- c++ - 如何制作使用不完整类型对象的函数
- ffmpeg - 如何使用 youtube-dl 分段录制直播
- php - 替换 PHP 字符串
- java - 为什么这个并发的 Java 代码经常失败?
- google-cloud-firestore - Firestore db:查询数组以查找具有特定值的文档