标签: javascript performance performance-testing
出于某种原因,(至少在Chrome中),如果您创建一个对象并使用空值初始化每个属性,然后为每个属性分配一个值,则它比最初将对象留空更快。为什么会出现这种情况(test)?
答案 0 :(得分:2)
V8(Chrome的Javascript引擎)具有优化功能,可以定义隐藏类来表示Javascript中的特定对象。在创建时声明对象的属性时,能够更好地执行此操作。
使用隐藏类有两个好处:属性访问 不需要字典查找,它们使V8能够使用经典 基于类的优化,内联缓存。
https://developers.google.com/v8/design#prop_access