JS 改变this指向
时间: 2023-08-20 11:57:32 浏览: 53
在 JavaScript 中,可以使用以下方法来改变函数中的 `this` 指向:
1. 使用 `bind` 方法:`bind` 方法创建一个新的函数,其 `this` 值被绑定到指定的对象。例如:
```javascript
function sayHello() {
console.log("Hello, " + this.name);
}
const obj = { name: "John" };
const boundFunc = sayHello.bind(obj);
boundFunc(); // 输出:Hello, John
```
2. 使用箭头函数:箭头函数会继承其父级作用域的 `this` 值,不会创建自己的 `this`。例如:
```javascript
const obj = {
name: "John",
sayHello: function() {
const innerFunc = () => {
console.log("Hello, " + this.name);
};
innerFunc();
}
};
obj.sayHello(); // 输出:Hello, John
```
3. 使用 `call` 或 `apply` 方法:`call` 和 `apply` 方法立即调用函数,并且显式指定函数内的 `this` 值。例如:
```javascript
function sayHello() {
console.log("Hello, " + this.name);
}
const obj = { name: "John" };
sayHello.call(obj); // 输出:Hello, John
sayHello.apply(obj); // 输出:Hello, John
```
这些方法可以帮助你在 JavaScript 中改变函数的 `this` 指向。
相关推荐
![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)