function sum (a, b, c, d) {
return a+b+c+d;
}
var result = 0;
var start = new Date().getTime();
for (var i = 0; i < 10000000; i++) {
result = sum.call(window, 1,2,3,4); // 2446ms
//result = sum.call(null, 1,2,3,4); // 260ms
}
var dur = new Date().getTime() - start;
alert(dur);
向call或apply传递null或undefined,是可以视为将函数的this更改为window或global的吧?
那为什么两者的执行时间会差这么多?
初始化window对象,比null要费劲多了。