【问题标题】:what is the difference between include/v8-object.h with src/objects/objects.hinclude/v8-object.h 与 src/objects/objects.h 有什么区别
【发布时间】:2022-08-09 16:59:46
【问题描述】:

我正在学习 v8 的源代码,我发现有很多关于 Object 的定义。

  1. 在include/v8-object.h
  2. 在src/objects/objects.h
  3. 在src/objects/js-objects.h

    那么有什么区别以及v8如何处理Javascript对象的创建(通过文字或构造函数)

  • \"那么有什么区别以及 v8 如何处理 Javascript 对象的创建(通过文字或构造函数)\"- 继续阅读 V8 的源代码以找出答案。下载一个 repo 克隆并启动一个 IDE,它可以让您按照引用和符号 F12/跳转源代码。

标签: javascript v8


【解决方案1】:

阅读资料可以回答这个问题。总结是:

  • include/v8-object.h 定义了v8::Object,这是在 V8 的公共 API 上公开的对象类。正如那里的评论所说,它对应于一个 JavaScript 对象。

  • src/objects/objects.h 定义了v8::internal::Object,它是托管堆上任何东西的超类(JavaScript 对象和各种内部表示和内部元数据都是它的子类)。

  • src/objects/js-objects.h 定义 JavaScript 对象的内部表示。

v8 如何处理 Javascript 对象的创建

简短的回答是:它将它们分配在托管堆上。

完全详细的答案比适合 SO 帖子的时间长得多,并且一直在变化。如果您真的关心,请阅读源代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-08
    • 2018-02-05
    • 2010-09-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多