时间:2021-07-01 10:21:17 帮助过:7人阅读
下面给大家介绍js中apply和Math.max()函数的问题,具体内容如下所示:
一直搞不懂为什么这样可以算出一个数组的最大值?一直想不明白,请js高手指教一下。
答案1
Function.apply()是JS的一个OOP特性,一般用来模拟继承和扩展this的用途,对于上面这段代码,可以这样去理解:
XXX.apply是一个调用函数的方法,其参数为:apply(Function, Args),
Function为要调用的方法,Args是参数列表,当Function为null时,默认为上文,
即
可认为是
然后,arr是一个参数列表,对于max方法,其参数是若干个数,即
当使用apply时,把所有参数加入到一个数组中,即
代入到原式,
实际上等同于
在此处,使用apply的优点是在部分JS引擎中提升性能。
答案2
Math.max()
方法,支持传递多个参数,比如:Math.max(1,4,2,3,7,5,6)
但是它不支持直接传递一个数组作为参数,比如:Math.max(new Array(1,4,2,3,7,5,6))
。
这里,只要我们有方法把数组,一个一个拆分开来,传递到Math.max()方法中,就实现了传递数组的方法。
所有函数都有apply(作用域链,参数)这个方法,这个函数的“参数”,接收一个数组,并且是将数组中的每个值,分开来,传递给调
补充:
Javascript中Math.max.apply和Math.max的区别
Javascript中的Math.max方法可以求出给定参数中最大的数。
但如果是数组,就不能这样调用了。
此时就用到了apply方法:
可选。 要传递到函数的一组参数。
巧妙地使数组也可以调用Math.max和Math.min。
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
Ajax上传实现根据服务器端返回数据进行js处理的方法
双层ajax嵌套(可多层)用法实例
Ajax实现弹出式无刷新城市选择功能代码
以上就是js中apply和Math.max()函数的问题及区别介绍的详细内容,更多请关注Gxl网其它相关文章!