我试图了解 call() 方法是如何工作的。我有以下在 Firebug Javascript 控制台中执行的代码片段。
代码:
var window = {num1: 10, num2: 20};
var o = {num1: 20, num2: 30};
var sum = function(num1, num2) {
return this.num1 + this.num2;
};
console.log(sum.call(o)); // 50
console.log(sum.call(window)); // 30
console.log(sum.call(this)); // 30
输出:
50
NaN
NaN
我预计输出分别为 50 和 30。当 window/this 对象作为执行上下文传递时,为什么 call() 返回 NaN?