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

v8对象机制

1.概述

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

2.对象创建过程

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

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

                   i::Handle<T>::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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值