【发布时间】:2013-04-04 15:04:08
【问题描述】:
由于某种原因,看起来(至少在 Chrome 中)如果您创建一个对象并使用空值初始化每个属性,然后为每个属性分配一个值,这比最初将对象留空要快。为什么会这样(test)?
【问题讨论】:
-
您的测试用例有点搞砸了 IMO。首先,
test函数是不必要的(我认为?),其次,您正在为对象文字中定义的属性之外的其他属性分配值(第一个测试除外)。 -
我的“空白”结果是最快的。
-
这里是更新版本:jsperf.com/object-initalisation-methodology/2。空的情况和任何其他情况 could (!) 之间的区别在于必须在运行时而不是“编译时”创建属性这一事实。所有其他情况似乎都同样快(至少它们在误差范围内)。
-
@FelixKling 是的——那是我的错。我想尝试让浏览器不会检测到它们是同一个对象或其他东西,不知道我当时在想什么。无论如何,为了获得更准确的结果,我做了一个新的修订,但使用了不同的对象名称。
标签: javascript performance performance-testing