箭头函数是JavaScript中简化回调函数最常用的方式,它省去function关键字、括号(单参数时)、花括号(单表达式时)和return(隐式返回),且无自身this,继承外层作用域this。

箭头函数是 JavaScript 中简化回调函数最常用的方式,尤其在数组方法(如 map、filter、reduce)、事件监听和 Promise 链中效果明显。它省去 function 关键字、括号(单参数时)、花括号(单表达式时)和 return(隐式返回),让代码更紧凑。
单参数 + 单表达式:最简写法
当回调只接收一个参数,且函数体只有一条可返回的表达式时,可以极致简化:
✅ 原写法:[1, 2, 3].map(function(x) { return x * 2; });
✅ 箭头简化:[1, 2, 3].map(x => x * 2);
- 省略
function和括号:x直接作参数 - 省略花括号和
return:自动隐式返回计算结果
多参数或无参数:括号不能省
多个参数必须用小括号包裹;无参数则写空括号:
✅ 多参数示例(reduce):[1, 2, 3].reduce((sum, item) => sum + item, 0);
✅ 无参数示例(定时器回调):setTimeout(() => console.log('done'), 1000);
-
(sum, item)是必需的,不可写作sum, item => ... -
() => ...表示无参,不能省略括号
需要多语句?加花括号 + 显式 return
一旦逻辑不止一条语句(比如有变量声明、条件判断),就得加花括号,并手动写 return(否则不返回值):
✅ 正确写法:
[1, 2, 3].map(x => {<br> const doubled = x * 2;<br> return doubled > 5 ? 'big' : 'small';<br>});
- 有花括号 → 不再隐式返回,必须写
return - 适合稍复杂的逻辑,但要避免过度嵌套,保持可读性
注意 this 绑定差异(关键区别)
箭头函数没有自己的 this,它继承外层作用域的 this。这对回调很有用——避免传统函数中常见的 this 丢失问题:
✅ 典型场景(对象方法内设定时器):
const obj = {
name: 'Alice',
sayHi() {
// 普通函数会丢失 this
setTimeout(function() {
console.log('Hello, ' + this.name); // ❌ this 指向 window/global
}, 100);
<pre class="brush:php;toolbar:false;">// 箭头函数继承 sayHi 的 this
setTimeout(() => {
console.log('Hello, ' + this.name); // ✅ 输出 "Hello, Alice"
}, 100);} };
- 在事件处理器、Promise 回调、定时器中,用箭头函数可自然保留上下文
- 但若需要动态
this(如 jQuery 的事件回调要求this指 DOM 元素),就不能用箭头函数
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











