搜索

首页  >  问答  >  正文

javascript - js的属性栈堆示意图

上图: obj存的是地址,指向堆中的对象

那么obj.a如何用栈堆表示呢?最好有图示哈,谢谢!

滿天的星座滿天的星座2779 天前585

全部回复(1)我来回复

  • 黄舟

    黄舟2017-05-19 10:44:02

    在v8里面, 在使用{a: 1}的时候, 会创建一个隐藏类, 有一个属性a, 类型为number, 偏移为0. 当通过obj.a获取这个类的实例的a属性时, 会通过obj查到堆中的起始地址, 加上偏移就可以获取到obj.a的地址了. 在古老的浏览器中, 一个object就是一个单纯的hash table, 和PHP很类似.

    回复
    0
  • 取消回复