this:解析器在调用函数的时候,每次都会向函数内部传入一个隐含的参数,this,指向一个对象,对象成为函数执行的上下文对象,
根据函数的调用方式不同,this会指向不同的对象。
- 以函数的形式调用时,this永远都是window
- 以方法的形式调用,this是调用方法的对象
function fun(){
console.log(this.name);
}
var a = {
name:"huizi",
sayHello:fun
};
var name = "全局变量name";
fun();//全局
a.sayHello();//huizi
this根据调用者的不同,变成不同的值。
var name = "全局";
function fun(){
console.log(this.name);
}
var obj = {
name:"d1",
sayName:fun
};
var obj1 = {
name:"d2",
sayName:fun
};
fun();
obj.sayName();
obj1.sayName();