我经历约翰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” –