简单理解为 this即调用者,用谁调 谁就是this
解析器在调用函数每次都会向函数内部传递一个隐含参数,
这个隐含的参数就是this,this指向的是一个对象,
这个对象我们称为函数执行的上下文对象
根据函数的调用方式的不同,this会指向不同的对象
1.以函数的形式调用时,this永远是window
2.以方法的形式调用时,this就是调用方法的那个对象
function fun(){
// console.log("a = "+a+",b = "+b);
console.log(this.name);
}
//fun();
//创建一个对象
var obj = {
name: "孙悟空",
sayName:fun
};
var obj2 = {
name: "猪八戒",
sayName:fun
}
//console.log(obj.sayName == fun );
var name = "全局的name属性";
//obj.sayName(); //object
//以函数形式调用,this是window
//fun(); //window
//以方法的形式调用,this是调用方法的对象
obj.sayName();
obj2.sayName();
补充:
//创建一个name变量
var name = "全局";
//创建一个sayName()函数
function fun(){
console.log(this.name);
}
//创建两个对象
var obj = {
name: "孙悟空",
sayName: fun,
}
var obj2 = {
name: "猪八戒",
sayName: fun,
}
//我们希望调用obj.sayName()时可以输出obj的名字
obj.sayName();
obj2.sayName();