2013-08-22 50 views
0
function smallest(array){ 
    return Math.min.apply(Math, array); 
} 

它將上下文指定爲Math對象。這是沒有必要(在MIN()和MAX()方法將繼續無論什麼傳遞作爲上下文的工作。爲什麼Math.max.apply不關心第一個參數

爲什麼儘管通過像undefined
它甚至工作爲什麼不是必要通過Math

+1

因爲'Math.min'只需要'arguments'作爲參數,'this'無關緊要;例如,它不像數組['1,2,3] .min()那樣在數組上運行。 – elclanrs

+0

您可以閱讀['Function.prototype.apply']的文檔(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/call)。 –

回答

0

函數執行時apply的第一個參數將被綁定到this。如果該函數不引用this(包括間接地通過它可能調用的函數),則不要緊什麼this是。它發生Math.min不使用執行時爲。

這幾乎是準確的。從the docs,對於第一個參數:

注意,這可能不是通過該方法看到的實際值:如果該方法是在非嚴格模式代碼,null和undefined一個功能與全球替代對象和原始值將被裝箱。

相關問題