Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
出于某种原因,看起来(至少在 Chrome 中)如果您创建一个对象并使用空值初始化每个属性,然后为每个属性分配一个值,这比最初将对象留空要快。为什么会这样(测试)?
V8(Chrome 的 Javascript 引擎)进行了优化,可以定义隐藏类来表示 Javascript 中的特定对象。当您在创建时声明对象的属性时,这样做会更好。
使用隐藏类有两个优点:属性访问不需要字典查找,它们使 V8 能够使用经典的基于类的优化,内联缓存。
https://developers.google.com/v8/design#prop_access