为什么用null初始化对象的属性会提高速度?

时间:2013-04-04 15:04:08

标签: javascript performance performance-testing

出于某种原因,(至少在Chrome中),如果您创建一个对象并使用空值初始化每个属性,然后为每个属性分配一个值,则它比最初将对象留空更快。为什么会出现这种情况(test)?

1 个答案:

答案 0 :(得分:2)

V8(Chrome的Javascript引擎)具有优化功能,可以定义隐藏类来表示Javascript中的特定对象。在创建时声明对象的属性时,能够更好地执行此操作。

  

使用隐藏类有两个好处:属性访问   不需要字典查找,它们使V8能够使用经典   基于类的优化,内联缓存。

https://developers.google.com/v8/design#prop_access