javascript - javascript中的事件循环模型

标签 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 事件而不是 native DOM 事件的事实,因为这与 native DOM 事件一起重现,正如 dystroy 所示 in his comment问题。

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

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

Events may be dispatched either synchronously or asynchronously.

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

关于javascript - javascript中的事件循环模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27484037/

相关文章:

Javascript 和 Canvas - 动画正弦波

javascript - 如何在javascript正则表达式中传递json数据?并按顺序验证密码

javascript - 从 service worker 返回带有 JSON 的 Response 对象

javascript - 如何在 node.js sequelize 中使用 varchar?

javascript - 在 Redux 中使用 LocalStorage 保持多个状态

javascript - 需要消除一个 .click() 事件

javascript - Firebase 数据库无效路径错误

javascript显示不同的屏幕分辨率

javascript - 标记图层数组不会从传单 map 中删除

javascript - jQuery 似乎无法在函数内工作