this总结
1、当以函数的形式调用时,this是window
function fun() {
console.log(this);
}
fun();
2、当以方法的形式调用时,谁调用方法,this就是谁
function fun() {
console.log(this.name);
}
// 创建一个对象
var obj = {
name: '孙悟空',
sayName: fun
};
// console.log(obj.sayName==fun);//true
obj.sayName();
此时this指向的是obj这个对象
3、当以构造函数调用时,this是新创建的那个对象
以构造函数的方式创建对象,this指向的是新创建的对象
function Person(name, age, gender) {
this.name = name;
this.age = age;
}
//此时this指向person1
let person1 = new Person('小方', 23);
//此时this指向person2
let person2 = new Person('小小', 1);