箭头函数this指向问题的的面试题
时间: 2024-10-20 15:10:12 浏览: 39
在面试中,关于箭头函数`this`指向的问题是一个常见热点。箭头函数与普通函数的一个关键区别在于它们内部的`this`绑定。这里有几个典型面试题目:
1. **固定this**: 箭头函数内部的`this`总是绑定到函数外部的作用域,也就是定义时的上下文。例如:
```javascript
const obj = {
sayHi: () => {
console.log(this); // 在这里,this指向obj
}
};
```
这意味着你不必担心箭头函数在调用过程中动态改变`this`。
2. **避免意外改变**: 因此,当需要在回调函数中保持稳定的`this`时,箭头函数非常有用。比如在事件处理或Promise链中:
```javascript
const button = document.getElementById('myButton');
button.addEventListener('click', () => console.log(this)); // 此处this始终指向window
```
3. **陷阱示例**: 面试者可能会故意设置场景考验理解:
- 如果在一个普通函数内使用箭头函数,`this`将取决于普通函数:
```javascript
function parentFunc() {
const innerArrow = () => {
console.log(this); // 这里this取决于parentFunc的调用情况
};
innerArrow();
}
```
4.
阅读全文