3

出于某种原因,看起来(至少在 Chrome 中)如果您创建一个对象并使用空值初始化每个属性,然后为每个属性分配一个值,这比最初将对象留空要快。为什么会这样(测试)?

4

1 回答 1

2

V8(Chrome 的 Javascript 引擎)进行了优化,可以定义隐藏类来表示 Javascript 中的特定对象。当您在创建时声明对象的属性时,这样做会更好。

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

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

于 2013-04-04T15:18:13.800 回答