nodisappear / notes

学习笔记
0 stars 0 forks source link

Google V8 #7

Open nodisappear opened 1 year ago

nodisappear commented 1 year ago

// v8 执行的模拟代码 var dog = {} // 创建空白对象 dog.proto = DogFactory.prototype // 对象的原型指向函数的 prototype 属性 DogFactory.call(dog, 'Dog','Black') // 函数中的 this 只想对象

nodisappear commented 1 year ago

宿主环境:V8 的宿主环境可以是浏览器中的渲染进程,也可以是 Node.js进程,这些宿主提供 V8 执行 JS 所需要的基础功能部件

可以把V8和浏览器的渲染进程的关系看成病毒和细胞的关系,浏览器为V8提供基础的消息循环系统、全局变量、Web API,而V8的核心是实现了ECMAScript标准,这相当于病毒自己的DNA或者RNA,V8只提供了ECMAScript定义的一些对象和一些核心的函数,这包括了Object、Function、String。除此之外,V8还提供了垃圾回收器、协程等基础内容,不过这些功能依然需要宿主环境的配合才能完整执行。

(1) 初始化存储数据的堆空间和栈空间 (2) 初始化执行上下文和全局作用域 执行上下文主要包含三部分:变量环境、词法环境和 this 关键字 image (3) 构造事件循环系统 V8 使用宿主提供的主线程来执行 JS 和垃圾回收等工作