1.首先普通函数里面谁调用 this便指向谁,call,apply,bind 可以改变this指向。
var a = 1;
var obj = {
a: 2,
b: function () {
console.log(this.a); // 2
function fun() { //this 指向window
return this.a
}
console.log(fun());
}
}
obj.b();//1
2.箭头函数的this, 指向函数体外的this
var a = 1;
var obj = {
a: 2
};
var fun = () => console.log(this.a);
fun();//1
fun.call(obj)//1
-------------------------------------------------------
var a = 1;
var obj = {
a: 2
};
function fun() {
var a = 3;
let f = () => console.log(this.a);
f();
};
fun();//1
fun.call(obj);//2