this
调用函数时候,每次都会向函数内部传递一个隐含的参数(this)
。
我们称之为,函数执行的上下文对象。
根据函数调用的方式的不同,this会指向不同的对象。
JavaScript this 关键词指的是它所属的对象。
具体取决于它的使用位置:
- 在方法中,
this
指的是所有者对象 - 单独的情况下,
this
指的是window
- 在函数中,
this
指的是window
- 在事件中,
this
指的是接收事件的元素
简而言之,谁调用,this
就指向谁
function sayName(){
console.log(this.name);
}
var obj = {
name:'tom',
sayName:sayName
}
function fish() {
console.log(this.bar);
}
var bar = "bar1";
var o2 = {bar: "bar2", fish: fish};
var o3 = {bar: "bar3", fish: fish};
fish();
o2.fish(); //bar2
o3.fish(); //bar3