this关键字
this的指向有三个基本要素
- this指向的永远只可能有对象
- this指向谁,永远不取决于this写在哪,而是取决于函数在哪调用
- this指向的对象,称为函数的上下文,也叫函数的调用者
this指向的规律
this指向的是函数的调用者,而不是函数的声明者
1.函数名()直接调用
通过函数名()直接调用
通过函数名直接调用,this指向window对象
function fun(){
console.log(this);
}
var obj = {
naem:"孙悟空",
sayName:fun,
}
fun(); //这里指向的是window
2.以方法形式调用时,this就是调用方法的那个对象
function fun(){
console.log(this);
}
var obj = {
naem:"孙悟空",
sayName:fun,
}
// fun();
obj.sayName(); //这里指向的是调用方法的对象
3、以构造函数调用时,this就是新创建的那个对象
function Person(name , age,gender){
this.name = name;
this.age = age;
this.gender = gender;
this.sayName = function(){
alert(thsi.name);
};
console.log(this); //指向per这个实例对象
}
var pre = new Person("孙悟空",19,"男");