我在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)
答案 0 :(得分:0)
所以,我的问题#1是:p2与p1共享一个隐藏的类吗? 答:不,只有使用相同构造函数创建的对象才会共享隐藏的类。
回答#2问题:删除p2上的属性将改变隐藏的p2类。
我已使用chrome dev工具上提供的堆内存快照选项验证了这一点。
谢谢,