浏览器

时间:2016-03-10 06:53:28

标签: javascript dom browser webbrowser-control

这可能听起来很傻,但过去几天让我受到了骚扰。我只想清楚一下如何在浏览器中解释和执行javascript,尤其是在事件处理期间。假设我有两个基于同一元素的click事件的函数。可能是为两个不同的类编写的两个不同的事件侦听器,并且在单击期间相同的元素具有这两个类。 js执行器首先运行哪个函数?

解释器是否解释了触发事件时的完整js文件,或者使用解释过程中生成的字节码,如Java或具体执行x - x + y行吗?

不是知道函数1是否会在函数2之前执行,反之亦然,我对使用js注册和处理事件的整个过程背后的机制更加好奇。

1 个答案:

答案 0 :(得分:0)

  

我对整个过程背后的机制更加好奇   使用js注册和处理事件。

将其视为一个队列,当您执行element.addEventListener时,事件会被推送。

队列有一个属性 - >的先入先出

因此,首先将事件侦听器添加到队列中(基本上首先由事件目标接收)将首先执行,直到所有事件都被执行。

注意:如果相同的事件处理程序方法是added more than once(与addEventListener相同的参数),则旧的替换为新的。

其次,当我们通过addEventListener添加活动时,我们specify a boolean value名为 - useCapture。如果值为true,则首先触发分配给父元素的事件,然后触发子元素,反之亦然,如果此值为false。