我經歷約翰Resig的JavaScript的忍者教程和#51我看到這一點:爲什麼要將Math作爲Math.max.apply的第一個參數?
// Find the largest number in that array of arguments
var largestAllButFirst = Math.max.apply(Math, allButFirst);
allButFirst
是整數的只是一小陣。我相信我明白apply
做什麼,但我不明白爲什麼Math
作爲參數傳遞給apply
。
@JakeSellers對'Math.max'具體而言,我確定其他一些功能,這真的沒有關係。關鍵是'Math.max' **不依賴或使用'this'值** ......但許多其他函數**都可以**。雖然它在技術上是可選的,但我會建議總是傳遞它,因爲**通常**稱它爲'Math.max()'(''這個'值是'Math')。我寧願安全,也不要對這樣一件小事感到抱歉,也要保持一致。 – Ian
@ian ok,謝謝 –
@ian在[文檔](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions_and_function_scope/arguments)中的參數,你可以看到他們使用' Array.prototype.slice.call(arugments)'將參數更改爲一個沒有上下文給定的數組。你對此有何看法?我有時候會使用這種技術,如果我不擔心它或傳遞一個上下文,或許只是本地函數上下文中的「this」 –