call、apply、bind的作用是改变函数运行时this的指向
*****
> ### call
> call 方法第一个参数是要绑定给this的值,后面传入的是一个参数列表。当第一个参数为null、undefined的时候,默认指向window。
```
var arr = [1, 2, 3, 89, 46]
var max = Math.max.call(null, arr[0], arr[1], arr[2], arr[3], arr[4])//89
```
> ### apply
> apply接受两个参数,第一个参数是要绑定给this的值,第二个参数是一个参数数组。当第一个参数为null、undefined的时候,默认指向window。
```
var arr = [1,2,3,89,46]
var max = Math.max.apply(null,arr)//89
```
转载:[https://www.jianshu.com/p/bc541afad6ee](https://www.jianshu.com/p/bc541afad6ee)