js里面,Math.max适用于找最大值的,但是为什么要找到一个数组的最大值,必须要Math.max.apply(Math, array)这样写呢?
函数默认调用方式是 function.call
function.apply(thisobj, args)
args
一个数组,它的元素是要传递给函数function的参数值。
参考 http://www.qefqei.com/javascript/Function-apply()
function.call(thisobj, args...)
args
任意多个参数,这些参数将传递给函数function。
因为如果不这样的话, 你需要这么调用:
Math.max(2,3,5,7)
这样才是查找四个数里面最大的。
如果2,3,5,7已经成了一个数组了, 那么apply刚好可以把数组拆开成四个参数:
Math.max(2,3,5,7) 等同于 Math.max.apply(Math, [2,3,5,7])