共同特点
这三个函数都是改变函数执行时的上下文,简而言之就是改变函数运行时的this指向
apply
- apply接受两个参数,第一个参数是this的指向,第二个参数是函数接受的参数,以数组的形式传入
- 改变this指向后原函数会立即执行,且此方法只是临时改变this指向一次
- 如果第一个参数为undefined,this指向window
call
- call()的第一个参数也是this的指向,后面的传入的是一个参数列表
- 改变this指向后原函数会立即执行,且此方法只是改变this指向一次
- 第一个参数为null,undefined的时候,默认指向window
bind
- 第一个参数也是this指向,后面传入一个参数列表
- 改变this指向之后不会立即执行,而是返回一个永久改变this指向的函数
- bind()会返回一个改变this指向的函数,不会立即执行,可以分成多次传参