es Math对象的max方法的apply()方法

`var num=[1,2,3]
var themax=Math.max.apply(Math, num);`
这种写法中:两点疑问
1:apply()两参数一个是在其中运行函数的作用域,另一个是参数数组
而且max()函数默认接受的是一串数值,但是我还是无法理解
传入这个Math对象有什么用 默认Math.max()代表Math对象内的max()方法,不是一个意思吗
这个数组在哪一步转换为一串数值的?

2.当我传入的对象为null时,运行结果依然成立,为什么


慕尼黑5688855
浏览 930回答 1
1回答

慕少森

call和apply的区别知道吧call(this, 1, 2, 3, ...);apply(this, [1, 2, 3, ...]);用apply就是为了把数组换成参数列表,第一个this的位置写null更好,因为不会污染其他的this上下文环境,这个位置就是一个占位,没有实际意义。 你想知道的底层原理需要看apply方法的源码,那就不是javascript范畴的了,需要看开发源码
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript