前端函数内this指向
时间: 2023-11-24 22:08:14 浏览: 110
在前端函数中,this指向取决于函数的调用方式。如果函数是作为对象的方法调用,那么this会指向该对象。如果函数是作为普通函数调用,那么this会指向全局对象(在浏览器中通常是window对象)。如果使用函数的call()或apply()方法调用函数,可以显式地指定this指向哪个对象。如果使用箭头函数定义函数,则this指向定义该函数的上下文对象。
相关问题
箭头函数的this
箭头函数的 `this` 指向在创建该箭头函数时所处的上下文的 `this` 值,而不是在调用该箭头函数时的 `this` 值。
在普通函数中,`this` 的指向是由函数的调用方式决定的,即由调用该函数的对象来决定。如:
```javascript
const obj = {
name: 'Alice',
sayName() {
console.log(this.name);
}
};
obj.sayName(); // 输出:Alice
```
而在箭头函数中,`this` 的指向是由箭头函数所在的上下文来决定的,如:
```javascript
const obj = {
name: 'Alice',
sayName: () => {
console.log(this.name);
}
};
obj.sayName(); // 输出:undefined
```
上述代码中,箭头函数 `sayName` 中的 `this` 指向的是全局对象,因为箭头函数是在定义时绑定的。而全局对象中并没有 `name` 属性,因此输出 `undefined`。
需要注意的是,箭头函数不适用于所有情况。如果需要在函数内部使用 `this`,并且希望 `this` 的指向能够根据函数的调用方式来动态确定,那么最好使用普通函数。
阅读全文