JS 改变this指向
时间: 2023-08-20 12:57:32 浏览: 99
在 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` 指向。
阅读全文