JS this绑定的四个规则
JS this绑定的四个规则
分别是 new、 (apply bind call )、默认、隐式
默认绑定
运行时的默认上下文,非严格模式是 window
function foo(){
console.log(this);
}
foo();
new
当 new 会创建一个对象 然后将this作为上下文
function Obj(){
this.a = 1;
}
const obj = new Obj();
console.log(obj.a); // 1
隐式绑定
函数被调用时有上下文对象,那么this会绑定这个上下文对象
function foo(){
console.log(this.a);
}
const obj = {
a:12,
foo,
};
obj.foo();
显示绑定(硬绑定/强制绑定)
使用call,apply或者bind,在调用函数的时候直接指定上下文对象,那么函数中的this会绑定到传入的对象
function foo(){
console.log(this);
}