箭头函数中的this
时间: 2024-08-26 15:03:20 浏览: 43
关于ES6箭头函数中的this问题
箭头函数在JavaScript中是一种简化的函数表达式形式,它与传统的函数有一些关键的区别,其中之一就是关于`this`关键字的行为。在箭头函数内部,`this`的值是在创建函数的时候确定的,而不是在调用函数的时候动态绑定。这意味着无论何时调用这个箭头函数,它的`this`指向始终是定义时上下文中的值。
举个例子:
```javascript
const obj = {
name: 'John',
sayName: () => {
console.log(this.name); // 输出 'John'
}
}
obj.sayName(); // 即便sayName在这个对象上调用,箭头函数内的this依然指向全局对象,而非obj
```
在上面的例子中,如果`sayName`是一个普通函数,那么`this.name`会指向`obj`。但作为箭头函数,`this`将保持全局对象的引用,除非显式地通过`bind`, `call`, 或 `apply` 这些方法改变其上下文。
阅读全文