web前端修改this指向
修改this指向
var box = document.querySelector('.box'),a,b,c;
var obj = {
fn:()=>{
console.log(this)
}
fn1:function(){
console.log(this)
}
}
obj.fn.call(box)
//this指向了window,箭头函数声明就已经指向了window,call修改不了obj.fn1.call(box,a,b,c) //this原指向obj,call之后this指向了box节点
obj.fn1.apply(box,[a,b,c])
obj.fn1.bind(box)()
call、apply、bind都修改了,call和apply传参数不一样,一个是逐个参数传入函数,一个是数组传入函数,bind就只修改了this指向,并没有执行函数。