JS 中通过apply实现数组中，查找最大值的方法原理是什么？
JS数组中无法直接通过`Math.max`查找数组中元素的最大值，但可以通过`apply`方法实现，底层实现逻辑及原理是什么样的呢？
```
Math.max.apply(null, [1,2,3]);
```
我们这样来理解，
首先，
```
Math.max(value0, value1, /* … ,*/ valueN) 
```
这个函数的参数并不是数组，比如你有N个数字比大小，哪它就要输入N个参数，
对于在数组中的数字，你把整个数组当参数给它，Math.max就认为只有一个参数了。所以比不了
也就是说，你要把数组中每一位数字，都转成它的参数
```
const arr=[1,2,3]
//最笨的办法是
Math.max(arr[0],arr[1],arr[2])
//最新的办法
Math.max(...arr)
```
上面都是把数组的每一位，变成参数传个Math.max
哪为什么，Function.prototype.apply() 就可以呢，因为apply(thisArg, argsArray),第二个参数，就是接受一个数组对像，把它变成调用者的所有参数，