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/

谢谢!


让我们忽略你在这里有jQuery事件的事实,而不是本地DOM事件,因为在他对这个问题的评论中已经显示了本机DOM事件。

简单地说,MDN在这里是误导性的。 一般来说,这篇文章可以使用技术评论。

如果我们检查DOM Events规范本身:

事件可以同步或异步分派。

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

链接地址: http://www.djcxy.com/p/23927.html

上一篇: event loop model in javascript

下一篇: how to mute the "beep" by MediaRecorder.start()?