函数当中的this都指向什么
时间: 2023-06-13 10:09:11 浏览: 46
在JavaScript中,函数中的this关键字表示当前执行函数的上下文对象。具体来说,this指向的是函数被调用时所在的对象,这个对象称为函数的上下文对象。在不同的调用方式下,this的指向也可能不同。
例如:
1. 当函数作为对象的方法被调用时,this指向该对象。
```
const obj = {
name: 'John',
greet() {
console.log(`Hello, ${this.name}!`);
}
};
obj.greet(); // Hello, John!
```
2. 当函数作为普通函数被调用时,this指向全局对象(在浏览器环境中为window对象,在Node.js环境中为global对象)。
```
function greet() {
console.log(`Hello, ${this}!`);
}
greet(); // Hello, [object Window] (在浏览器环境中)
```
3. 当函数使用apply、call或bind方法调用时,this指向指定的上下文对象。
```
const obj1 = { name: 'John' };
const obj2 = { name: 'Mary' };
function greet() {
console.log(`Hello, ${this.name}!`);
}
greet.call(obj1); // Hello, John!
greet.call(obj2); // Hello, Mary!
```
需要注意的是,在箭头函数中,this的指向与普通函数不同。箭头函数的this指向最近一层非箭头函数的上下文对象,如果没有非箭头函数,则指向全局对象。