必看——彻底理解JS中的this指向
程序员文章站
2022-03-02 09:42:00
...
情况1:
默认绑定:没有明确隶属对象的函数,被直接执行,这种情况this一般指向window
function fn(){
console.log(this);
}
fn();
//这时this指向window
情况2:
隐式绑定:有所属对象的函数,被执行,这种情况一般this指向当前函数上午所属对象
var obj={
name:"admin",
show:function(){
console.log(this);
}
}
obj.show();
//这时this指向obj
隐式丢失:如果作为参数,传到另一个函数中,那么丢失原本的对象,this指向变成window
var obj={
name:"admin",
show:function(){
console.log(this);
}
}
obj.show(obj.show,1000);
//这时this指向window
情况3:
强制绑定:利用函数的方法(call,apply,blind),改成谁,this就是谁
情况4:
new绑定:函数被new执行之后,函数内部的this会指向new出来的实例。
注意:ES6中的箭头函数没有自己的this,指向外层的this。