一、普通函数的this指向执行时调用普通函数的对象(谁调用它,它的this就指向谁)
var name = "China";
var obj = {
name: "America",
a: function () {
console.log(this.name);
},
};
obj.a(); //America
二、普通函数作为构造函数时this指向它的实例
var name = "张三1";
function wrap() {
this.name = "张三2";
this.age = 18;
}
let en = new wrap();
console.log(en.name);
三、箭头函数的原型上本身没有this,箭头函数在定义时会继承上下文的 this
var name = "China";
var obj = {
name: "America",
b: () => {
console.log(this.name);
},
};
obj.b(); //China
定义 obj 的同时也在定义箭头函数 b ,箭头函数 b 在全局作用域下定义,所以 this 指向 window 对象