위 그림: obj는 힙에 있는 객체를 가리키는 주소를 저장합니다
그렇다면 obj.a는 스택으로 어떻게 표현되나요? 사진이 있으면 더 좋을 것 같아요. 감사합니다!
v8에서는 {a: 1}的时候, 会创建一个隐藏类, 有一个属性a, 类型为number, 偏移为0. 当通过obj.a获取这个类的实例的a属性时, 会通过obj查到堆中的起始地址, 加上偏移就可以获取到obj.a的地址了. 在古老的浏览器中, 一个object就是一个单纯的hash table, 和PHP를 사용하는 것이 매우 유사합니다.
{a: 1}
a
number
0
obj.a
obj
object
hash table
PHP
v8에서는
{a: 1}
的时候, 会创建一个隐藏类, 有一个属性a
, 类型为number
, 偏移为0
. 当通过obj.a
获取这个类的实例的a
属性时, 会通过obj
查到堆中的起始地址, 加上偏移就可以获取到obj.a
的地址了. 在古老的浏览器中, 一个object
就是一个单纯的hash table
, 和PHP
를 사용하는 것이 매우 유사합니다.