JavaScript V8中的普通对象是否隐藏了类?

时间:2013-03-28 07:13:02

标签: javascript v8

我在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

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

Writing Fast, Memory-Efficient JavaScript

请阅读 DE-REFERENCING MISCONCEPTIONS 部分。

这篇文章是否正确删除属性?(问题#3)

1 个答案:

答案 0 :(得分:0)

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

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

我已使用chrome dev工具上提供的堆内存快照选项验证了这一点。

谢谢,