解析器在调用函数每次都会向函数内部传递进一个隐含的参数。
这个隐含的参数就是this,this指向的是一个对象。
这个对象我们称为函数执行的上下文对象,根据函数的调用方式不同,this会指向不同的对象。
- 以函数的形式调用时,this永远都是window。fn()
- 以方法的形式调用时,this就是调用方法的那个对象。obj.sayName()
// 举例1:
function fn(){
console.log(this);
}
fn(); // 输出window 此时的this指向的对象就是window
// 举例2:
var obj = {
name:"女团",
sayName:fn
}
function fn(){
console.log(this.name);
}
obj.sayName(); // 输出女团 此时this指向的对象是obj