基于: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);
Run Code Online (Sandbox Code Playgroud)
谢谢!
让我们忽略这里有 jQuery 事件而不是本机 DOM 事件的事实,因为这会使用本机 DOM 事件重现,正如dystroy在他对问题的评论中所显示的那样。
简单地说,MDN 这里有误导性。一般来说,该文章可以使用技术审查。
如果我们检查DOM 事件规范本身:
事件可以同步或异步调度。
“在处理下一个事件之前堆栈帧为空。”在一般情况下是不正确的。它仅发生在异步事件中。
| 归档时间: |
|
| 查看次数: |
93 次 |
| 最近记录: |