其实这三个方法都是改变this指向的。(箭头函数不适用,箭头函数中,this的指向都是根据上下文来决定的,一般就是window对象)
举个例子:
var box = this.document.querySelector('.box'); //class为box的dom节点
var num1 = 1;
var num2 = 2;
var obj = {
fn: function(num1,num2){
console.log(this)
}
}
如果我想把this指向box。可以这样
obj.call(box,num1,num2)//第一个参数是你要绑定的对象,其他的参数是你方法的入参
obj.apply(box,[num1,num2])//基本和call没区别,就是入参都放到数组中了
obj.bind(box)()//返回的是你绑定后的那个函数,所以后面有()