热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

v8学习笔记(四)对象机制

v8对象机制1.概述v8中每一个API对象都对应一个内部实现对象(堆对象)2.对象创建过程(1)v8::internal::Factory类:

v8对象机制

1.概述

         v8中每一个API对象都对应一个内部实现对象(堆对象)

2.对象创建过程

         (1)v8::internal::Factory:创建各种内部对象(v8::internal::)

         (2)创建内部对象的内部Handle(v8::internal::Handle),调用

                   i::Handle::Handle(T* obj)->HandleScope::CreateHandle(obj);

                   (T*内部对象指针)放入static HandleScopeData;

         (3)把内部句柄转化为API Handle(v8::internal::T**->v8::T*),返回API Handle

                                              

---------------------------------------------------------------------------------------------------------------------------------

V8内部类继承层次

     Object

     |    Smi          (immediate small integer)

     |    Failure      (immediate for marking failed operation)

     |    HeapObject   (superclass for everything allocated in the heap)

     |    |    JSObject

     |    |    |    JSArray

     |    |    |    JSRegExp

     |    |    |    JSFunction

     |    |    |    GlobalObject

     |    |    |    |    JSGlobalObject

     |    |    |    |    JSBuiltinsObject

     |    |    |    JSGlobalProxy

     |    |    |    JSValue

     |    |    ByteArray

     |    |    PixelArray

     |    |    ExternalArray

     |    |    |    ExternalByteArray

     |    |    |    ExternalUnsignedByteArray

     |    |    |    ExternalShortArray

     |    |    |    ExternalUnsignedShortArray

     |    |    |    ExternalIntArray

     |    |    |    ExternalUnsignedIntArray

     |    |    |    ExternalFloatArray

     |    |    FixedArray

     |    |    |    DescriptorArray

     |    |    |    HashTable

     |    |    |    |    Dictionary

     |    |    |    |    |    StringDictionary

     |    |    |    |    |    NumberDictionary

     |    |    |    |    SymbolTable

     |    |    |    |    CompilationCacheTable

     |    |    |    |    CodeCacheHashTable

     |    |    |    |    MapCache

     |    |    |    Context

     |    |    |    JSFunctionResultCache

     |    |    |    SerializedScopeInfo

     |    |    String

     |    |    |    SeqString

     |    |    |    |    SeqAsciiString

     |    |    |    |    SeqTwoByteString

     |    |    |    ConsString

     |    |    |    ExternalString

     |    |    |    |    ExternalAsciiString

     |    |    |    |    ExternalTwoByteString

     |    |    HeapNumber

     |    |    Code

     |    |    Map

     |    |    Oddball

     |    |    Proxy

     |    |    SharedFunctionInfo

     |    |    Struct

     |    |    |    AccessorInfo

     |    |    |    AccessCheckInfo

     |    |    |    InterceptorInfo

     |    |    |    CallHandlerInfo

     |    |    |    TemplateInfo

     |    |    |    |    FunctionTemplateInfo

     |    |    |    |    ObjectTemplateInfo

     |    |    |    Script

     |    |    |    SignatureInfo

     |    |    |    TypeSwitchInfo

     |    |    |    DebugInfo

     |    |    |    BreakPointInfo

     |    |    |    CodeCache


推荐阅读
  • 本文介绍了如何在iOS平台上使用GLSL着色器将YV12格式的视频帧数据转换为RGB格式,并展示了转换后的图像效果。通过详细的技术实现步骤和代码示例,读者可以轻松掌握这一过程,适用于需要进行视频处理的应用开发。 ... [详细]
  • 本文对常见的字符串哈希函数进行了全面分析,涵盖了BKDRHash、APHash、DJBHash、JSHash、RSHash、SDBMHash、PJWHash和ELFHash等多种算法。这些哈希函数在不同的应用场景中表现出各异的性能特点,通过对比其算法原理、计算效率和碰撞概率,为实际应用提供了有价值的参考。 ... [详细]
  • 本文详细探讨了使用纯JavaScript开发经典贪吃蛇游戏的技术细节和实现方法。通过具体的代码示例,深入解析了游戏逻辑、动画效果及用户交互的实现过程,为开发者提供了宝贵的参考和实践经验。 ... [详细]
  • 本文介绍了如何利用ObjectMapper实现JSON与JavaBean之间的高效转换。ObjectMapper是Jackson库的核心组件,能够便捷地将Java对象序列化为JSON格式,并支持从JSON、XML以及文件等多种数据源反序列化为Java对象。此外,还探讨了在实际应用中如何优化转换性能,以提升系统整体效率。 ... [详细]
  • Java中不同类型的常量池(字符串常量池、Class常量池和运行时常量池)的对比与关联分析
    在研究Java虚拟机的过程中,笔者发现存在多种类型的常量池,包括字符串常量池、Class常量池和运行时常量池。通过查阅CSDN、博客园等相关资料,对这些常量池的特性、用途及其相互关系进行了详细探讨。本文将深入分析这三种常量池的差异与联系,帮助读者更好地理解Java虚拟机的内部机制。 ... [详细]
  • 本文详细介绍了使用 Python 进行 MySQL 和 Redis 数据库操作的实战技巧。首先,针对 MySQL 数据库,通过 `pymysql` 模块展示了如何连接和操作数据库,包括建立连接、执行查询和更新等常见操作。接着,文章深入探讨了 Redis 的基本命令和高级功能,如键值存储、列表操作和事务处理。此外,还提供了多个实际案例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 本文探讨了 Java 中 Pair 类的历史与现状。虽然 Java 标准库中没有内置的 Pair 类,但社区和第三方库提供了多种实现方式,如 Apache Commons 的 Pair 类和 JavaFX 的 javafx.util.Pair 类。这些实现为需要处理成对数据的开发者提供了便利。此外,文章还讨论了为何标准库未包含 Pair 类的原因,以及在现代 Java 开发中使用 Pair 类的最佳实践。 ... [详细]
  • 如何在页面底部添加倾斜样式效果? ... [详细]
  • 2012年9月12日优酷土豆校园招聘笔试题目解析与备考指南
    2012年9月12日,优酷土豆校园招聘笔试题目解析与备考指南。在选择题部分,有一道题目涉及中国人的血型分布情况,具体为A型30%、B型20%、O型40%、AB型10%。若需确保在随机选取的样本中,至少有一人为B型血的概率不低于90%,则需要选取的最少人数是多少?该问题不仅考察了概率统计的基本知识,还要求考生具备一定的逻辑推理能力。 ... [详细]
  • JavaScript XML操作实用工具类:XmlUtilsJS技巧与应用 ... [详细]
  • 蓝桥杯物联网基础教程:通过GPIO输入控制LED5的点亮与熄灭
    本教程详细介绍了如何利用STM32的GPIO接口通过输入信号控制LED5的点亮与熄灭。内容涵盖GPIO的基本配置、按键检测及LED驱动方法,适合具有STM32基础的读者学习和实践。 ... [详细]
  • Java解析YAML文件并转换为JSON格式(支持JSON与XML的结构化查询)
    本文探讨了如何利用Java解析YAML文件并将其转换为JSON格式,同时支持JSON和XML的结构化查询。YAML、JSON和XML这三种数据格式通过其名称作为文件扩展名,便于区分和使用。文章详细介绍了这些格式的层次结构和数据表示方法,并重点讨论了在数据传输过程中,XML的特性和优势。此外,还提供了具体的代码示例和实现步骤,帮助开发者高效地进行数据格式转换和查询操作。 ... [详细]
  • HBase Java API 进阶:过滤器详解与应用实例
    本文详细探讨了HBase 1.2.6版本中Java API的高级应用,重点介绍了过滤器的使用方法和实际案例。首先,文章对几种常见的HBase过滤器进行了概述,包括列前缀过滤器(ColumnPrefixFilter)和时间戳过滤器(TimestampsFilter)。此外,还详细讲解了分页过滤器(PageFilter)的实现原理及其在大数据查询中的应用场景。通过具体的代码示例,读者可以更好地理解和掌握这些过滤器的使用技巧,从而提高数据处理的效率和灵活性。 ... [详细]
  • Python 实战:异步爬虫(协程技术)与分布式爬虫(多进程应用)深入解析
    本文将深入探讨 Python 异步爬虫和分布式爬虫的技术细节,重点介绍协程技术和多进程应用在爬虫开发中的实际应用。通过对比多进程和协程的工作原理,帮助读者理解两者在性能和资源利用上的差异,从而在实际项目中做出更合适的选择。文章还将结合具体案例,展示如何高效地实现异步和分布式爬虫,以提升数据抓取的效率和稳定性。 ... [详细]
  • 投融资周报 | Circle 达成 4 亿美元融资协议,唯一艺术平台 A 轮融资超千万美元 ... [详细]
author-avatar
漫路细雨中_575
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有