我一直在阅读Javascript的内部机制(以Chrome浏览器为例),有几个问题我找不到合适的答案。
据我理解:
ECMA规范中的核心Javascript被包含在V8引擎中。
像
settimeout
这样的函数是由浏览器的Web API提供的。V8引擎包括一个调用堆栈,任何需要执行的Javascript都会被推送到该堆栈上。
非标准函数通过Web API进行调用。
这些函数完成后,将被推送到回调队列中。
一旦堆栈为空,事件循环会将回调队列中的任何内容推送到堆栈上。
我的问题是:当V8引擎解释Javascript代码时,它如何知道特定的函数来自Web API?Web API实际上与引擎是如何关联的?