js如何改变this指向
时间: 2024-04-29 12:24:26 浏览: 86
1. 使用call()方法或apply()方法来改变this指向,这两个方法的第一个参数都是要改变this指向的对象,第二个参数是传入函数的参数列表,call()方法是一个一个传入,apply()方法是以数组的形式传入。
示例:
```
function showName() {
console.log(this.name);
}
var person1 = { name: "Alice" };
var person2 = { name: "Bob" };
showName.call(person1); // 输出 "Alice"
showName.call(person2); // 输出 "Bob"
showName.apply(person1); // 输出 "Alice"
showName.apply(person2); // 输出 "Bob"
```
2. 使用bind()方法来改变this指向,该方法会返回一个新的函数,这个函数的this指向被绑定到bind()方法的第一个参数所指定的对象。
示例:
```
function showName() {
console.log(this.name);
}
var person1 = { name: "Alice" };
var person2 = { name: "Bob" };
var showPerson1Name = showName.bind(person1);
var showPerson2Name = showName.bind(person2);
showPerson1Name(); // 输出 "Alice"
showPerson2Name(); // 输出 "Bob"
```
阅读全文