我正在努力找出nodejs如何与v8引擎交互。假设我写了一些js代码,当我执行它时,它会转到v8引擎执行,假设js代码包含nodejs给我们的一些函数。在这种情况下,nodejs 将如何知道或 v8 将如何处理此外部函数调用,因为我们知道 v8 引擎独立于运行时环境。
我尝试查找解释 Nodejs 如何与 v8 交互的文章,但没有找到任何相关的好文章。
运行 V8 的环境可以向 V8 环境添加新函数,无论是对象还是全局函数,然后它可以为这些函数提供纯 JS 实现,或者可以链接到可以接收函数参数、返回结果的外部代码并与垃圾收集交互。这就是浏览器和 Nodejs 为支持特定于其环境的事物所做的事情。
如果您不知道,甚至像
setTimeout()
这样的东西也是 JS 规范之外的,因此 Chrome 提供了一个在浏览器中使用的实现,而 Nodejs 提供了一个不同的实现在 NodeJS 中使用。