基于: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);
谢谢!
答案 0 :(得分:3)
让我们忽略你在这里拥有jQuery事件而不是本机DOM事件的事实,因为这会复制本机DOM事件,因为dystroy已经显示in his comment问题。
简单地说MDN在这里有误导性。一般来说,该文章可以使用技术审查。
如果我们检查DOM Events specification本身:
可以同步或异步调度事件。
"堆栈帧在处理下一个事件之前为空。 "在一般情况下是不正确的。它只发生在异步事件中。