在包装功能中运行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。