首页 新闻 会员 周边

有关js的问题

0
悬赏园豆:10 [已关闭问题] 解决于 2012-10-31 13:57

js里面,Math.max适用于找最大值的,但是为什么要找到一个数组的最大值,必须要Math.max.apply(Math, array)这样写呢?

lqzerogg的主页 lqzerogg | 初学一级 | 园豆:90
提问于:2012-10-31 09:27
< >
分享
其他回答(1)
0

函数默认调用方式是 function.call

function.apply(thisobj, args) 

args
    一个数组,它的元素是要传递给函数function的参数值。

参考 http://www.qefqei.com/javascript/Function-apply()

 

function.call(thisobj, args...) 

args
    任意多个参数,这些参数将传递给函数function。

参考 http://www.qefqei.com/javascript/Function-call()

慧☆星 | 园豆:5640 (大侠五级) | 2012-10-31 09:41
0

因为如果不这样的话, 你需要这么调用:

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])

undefined | 园豆:898 (小虾三级) | 2012-10-31 11:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册