我一直想知道JavaScript中的事件处理程序如何始终侦听后续动作来一次又一次触发事件,即使在解析了您编写的JavaScript代码之后也是如此。 我曾尝试过在线研究,但没有找到任何资源来解释事件监听器如何保持活动或活跃。
我了解调用堆栈的工作原理,但我只想知道所有事件监听器如何保持活动或活动状态。
例如,带有addEventListener
事件的"click"
如果单击按钮,将始终运行指定的回调。那么addEventListener
方法添加的回调如何始终保持活动状态?
答案 0 :(得分:1)
JavaScript的这种行为通常称为“事件循环”。 JavaScript引擎不断运行,并不断寻找新的事件。它将一直运行,直到所有事件处理程序都分离为止。现在,如果事件被触发,它将最终进入事件队列。然后,当事件循环将事件从队列中取出并执行时。这将创建一个调用栈,如果展开,则循环继续。
答案 1 :(得分:1)
JS引擎将所有处理程序(附加到特定事件的内存)保留在内存中,它成为了JS引擎,可以知道发生了什么事件以及该事件附加了什么处理程序...希望这会有所帮助