this指向问题及实例
时间: 2023-09-11 10:10:21 浏览: 63
在JavaScript中,关键字`this`用于指向当前执行代码的对象。它的值取决于函数被调用的方式。
下面是一些常见的使用`this`的场景和示例:
1. 全局作用域中的`this`:
```
console.log(this); // 在浏览器中,指向全局对象Window
```
2. 函数中的`this`:
```
function myFunction() {
console.log(this);
}
myFunction(); // 在浏览器中,指向全局对象Window
```
3. 对象方法中的`this`:
```
const obj = {
name: "John",
sayHello: function() {
console.log("Hello, " + this.name);
}
};
obj.sayHello(); // 输出 "Hello, John"
```
4. 构造函数中的`this`:
```
function Person(name) {
this.name = name;
}
const john = new Person("John");
console.log(john.name); // 输出 "John"
```
5. 使用`call()`和`apply()`显式指定`this`:
```
function greet() {
console.log("Hello, " + this.name);
}
const person = {
name: "John"
};
greet.call(person); // 输出 "Hello, John"
```
需要注意的是,箭头函数不绑定独立的`this`值,而是继承外部作用域中的`this`。
这些只是一些常见的使用示例,具体的`this`指向取决于函数的调用方式和上下文。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)