JavaScript作为一种基于事件驱动的脚本语言,很多书本都介绍了它的事件模型,
例如:如何去绑定事件,如何取消绑定等···
而对它的底层实现却没怎么提到!所以想问问大神们,它的底层是怎么实现的?或者有什么书本推荐?
JavaScript的事件都是在未来的某一时刻发生的,网上有些说是把事件处理函数放到一个队列里面,那是不是只有一个队列?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
老问题了,简单说就是每次执行完当前的JavaScript代码之后,引擎就会检查消息队列,如果有消息的话就取出一条来,检查有没有绑定这个消息的代码,有的话就不管别的了直接去执行绑定好的代码。这段代码执行完之后就再去看消息队列,如果消息队列没有消息了,就一直等待直到有新消息到来。
至于消息的来源自然是浏览器的其他线程比如UI线程、
定时器、网络模块等。(定时器是在event loop中处理的,没有专门的定时器线程,之前说错了)。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/EventLoop
看看backbone的events 的实现吧