ES6引入的箭头函数是JavaScript语言的一次重大革新,它提供了更简洁的函数语法,并改变了this关键字的绑定行为。
基本语法如下:
// 传统函数
const add = function(a, b) {
return a + b;
};
// 箭头函数
const add = (a, b) => a + b;
箭头函数最显著的特点是简明的语法:
- 当只有一个参数时,可省略括号
- 当函数体只有一条语句时,可省略大括号和return关键字
更重要的是,箭头函数不绑定自己的this值,而是继承自外层作用域:
// 传统函数中的this问题
function Counter() {
this.count = 0;
setInterval(function() {
this.count++; // 这里的this指向window
}, 1000);
}
// 使用箭头函数解决
function Counter() {
this.count = 0;
setInterval(() => {
this.count++; // 正确指向Counter实例
}, 1000);
}
箭头函数还简化了数组方法的调用:
const numbers = [1, 2, 3, 4];
const doubled = numbers.map(n => n * 2);
需要注意的是,箭头函数不能用作构造函数,也没有prototype属性。它已经成为现代JavaScript开发中不可或缺的特性,让代码更加简洁和可预测。