常规属性(properties)和排序属性(element)
对象中的字符串属性被称为properties,是按照创建的顺序;数字属性被称为element,按照索引值大小排序。
在对象bar内部分别使用了两个线性数据结构保存这两种属性,索引顺序element → properties
对象内属性
为了提升查找效率,V8实现了对象内属性策略,如果对象属性少于一定数量时,V8就会把这些属性直接写入对象中。如果多于一定数量时,V8就会将线性存储模式降级为非线性字典结构,这样虽然降低了查找速度,但是提升了修改速度。
数量少时
数量多时
隐藏类Map
描述了对象内的属性布局,包括对象名和偏移量,每次对象的修改都会更新隐藏类。
守护隐藏类
- 初始化保持顺序一致
- 一次性初始化完毕
- 谨慎使用delete,破坏隐藏类增加额外的查找速度。
❤️ 转载文章请注明出处,谢谢!❤️