js的属性栈堆示意图

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

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

https://img3.mukewang.com/5c0a22ad0001a68906970739.jpg

慕哥9229398
浏览 842回答 1
1回答

斯蒂芬大帝

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

相关分类

JavaScript