1.直接绑定方式(默认绑定方式)优先级最低
针对普通的函数,this就是window(只要函数调用的时候前面没有带);
2.隐式绑定方式
当作对象方法来调用(这个函数在调用的时候前面带点了) 它的优先级比直接绑定高一些;
3.显示绑定方式
apply call bind
4.new 的绑定方式
new帮定的优先级>显示绑定>隐式绑定>直接绑定。
相同点:
apply
、 call
、bind
三者都是用来改变函数的this对象的指向的,第一个参数都是this要指向的对象
不同点:
call和aplly的区别只是在与参数不同,call的第二个参数是目标函数的第一个参数,第三个是目标函数的第二个参数以此类推,apply的第二个参数是个数组,数组里面的每一项一次是目标函数的参数
bind
是返回对应函数,便于稍后调用;apply
、call
则是立即调用 。