2

我在V8 Design Elements:Fast Property Access阅读了隐藏类。

示例中的对象由构造函数创建

var p1 = new Point(1,2)

p1 有一个隐藏类,用于快速访问它的属性'x','y'。

var p2 = {x:1,y:2}

所以,我的问题#1 是:p2 是否与 p1 共享一个隐藏类?

而且,如果 p2 确实有一个隐藏类,下面的代码会改变隐藏类吗?(问题#2)

delete p2.x

这是这篇文章让我问这个问题:

编写快速、内存高效的 JavaScript

只需阅读DE-REFERENCING MISCEPTIONS部分。

这篇关于删除财产的文章是否正确?(问题#3)

4

1 回答 1

0

所以,我的问题#1 是:p2 是否与 p1 共享一个隐藏类?答:不,只有使用相同构造函数创建的对象才能共享隐藏类。

回答 #2 问题:删除 p2 上的属性将更改 p2 的隐藏类。

我已经通过使用 chrome 开发工具上可用的堆内存快照选项验证了这一点。

谢谢,

于 2017-07-16T12:24:07.140 回答