nfssuzukaze / Blog

0 stars 0 forks source link

Object #28

Open nfssuzukaze opened 3 years ago

nfssuzukaze commented 3 years ago

JavaScript 的对象

有 JS 代码如下:

let obj = {
  a: 'a0', b: 'b0', c: 'c0',
  0: 1, 1: 2, 2: 3
}
obj.d = 'd0'

其在 v8 中的结构如下 image

inobject properties(对象内属性)

有一部分属性存储在 JSObject 中, 其为对象内属性, 在各种类型的属性中访问速度最快 这类属性的 key 一定为非数字类型

properties(命名属性)

key 值为非数字类型的属性存储在 properties 中

elements(数字索引属性)

key 为数字类型的属性存储在 elements 中

hidden class

隐藏类, 存储着一个对象的结构

快属性与慢属性性能上的区别

image