我在看教程,爲什麼你可以調用Array.prototype.pop.apply或者在沒有指定thisArg的情況下調用?注意計算表達式中第1行和第3行的差異。在沒有thisargument的情況下在Array.prototype.apply中使用fn?
例如:
var calculate = function() {
var fn = Array.prototype.pop.apply(arguments);
console.log(fn);
return fn.apply(null, arguments);
};
var sum = function (x, y) {
return x + y;
};
var diff = function (x, y) {
return x - y;
}
var x = calculate(5, 3, sum);
如果我這樣做,我得到一個錯誤:未捕獲的類型錯誤:Array.prototype.pop呼籲null或未定義的Default.aspx:54(匿名函數)
var fn = Array.prototype.pop.apply(null, arguments);
你想在'arguments.pop'這樣的參數上調用'pop',這意味着'this'是參數。所以它應該是'Array.prototype.pop.apply(arguments);' –