for-in循环中的奇怪Chrome行为

时间:2016-10-11 12:48:57

标签: javascript performance google-chrome scope comparison

在包装功能中运行for-in循环时,我遇到了Chrome的奇怪行为。

说,我们有一个对象:

obj = { 'a': 1, 'b': 2, 'c': 3, 'd': 4 };

执行此代码:

var sum = 0;
for (var val in obj) {
  sum += obj[val];
}

比调用此函数慢两倍:

function sumObj(obj) {
  var sum = 0;
  for (var val in obj) {
    sum += obj[val];
  }
}

像:

sumObj(obj);

Edge和Firefox浏览器平等地处理此代码。

为什么Chrome直接处理函数调用比内部代码更快?

您可以找到效果测试there

0 个答案:

没有答案