javascript中的事件循环模型

时间:2014-12-15 12:23:48

标签: javascript

基于:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/EventLoop

在处理下一个事件之前,

堆栈帧为空。那么为什么在下面的片段警报中显示1而不是0,因为警报功能应该在回调之前运行

var a=0;
var b={};

$(b).on("event", function (){
  a++;
});

$(b).trigger("event");
alert(a);

http://jsfiddle.net/nxjhokL0/

谢谢!

1 个答案:

答案 0 :(得分:3)

让我们忽略你在这里拥有jQuery事件而不是本机DOM事件的事实,因为这会复制本机DOM事件,因为dystroy已经显示in his comment问题。

简单地说MDN在这里有误导性。一般来说,该文章可以使用技术审查。

如果我们检查DOM Events specification本身:

  

可以同步或异步调度事件。

"堆栈帧在处理下一个事件之前为空。 "在一般情况下是不正确的。它只发生在异步事件中。