箭头函数换成普通函数
时间: 2024-09-24 14:27:11 浏览: 51
箭头函数是 ES6 引入的一种新的函数表达式写法,它相比于传统函数有以下几个特点:
1. **简洁**:箭头函数语法更简洁,当函数体只有一条语句时,可以省略大括号和 `return` 关键字。例如:
```javascript
// 箭头函数示例
const add = (a, b) => a + b;
```
2. **词法作用域**:箭头函数没有自己的 `this`,它的 `this` 始终指向创建它的上下文,而不是函数调用时的上下文。这使得在处理回调或事件处理等场景时更易理解和控制 `this`。
3. **不能作为构造函数**:箭头函数没有 `prototype` 属性,因此不能通过 `new` 关键字来实例化。
将箭头函数转换为普通函数,通常是在需要 `this` 指向当前作用域、需要 `prototype` 或者需要使用多行语句的时候。例如:
```javascript
// 转换后的普通函数
function add(a, b) {
return a + b; // 这里包含了多行语句
}
// 或者在需要动态 `this` 的情况
const obj = {
sayName: function() { // 使用普通函数保持正确的 `this`
const self = this; // 存储原始 `this`
setTimeout(function() {
console.log(self.name); // 使用 `self` 访问外部的 `this.name`
}, 1000);
}
};
```
阅读全文