箭头函数在数组方法中用于简化写法并避免this陷阱,但不可作构造函数、无arguments且不能用call/apply改this;适用于map、filter、reduce等返回新数组或值的方法,不修改原数组。

箭头函数在数组方法中用得最多,核心是写得更简洁、避免 this 陷阱,但要注意不能当构造函数、没有 arguments、也不能用 call/apply 改变 this。
用箭头函数简化 map、filter、reduce
传统写法要写 function 关键字,箭头函数直接省掉,尤其适合单参数单表达式场景:
-
map:把数组每个元素转成新值
[1, 2, 3].map(x => x * 2)→[2, 4, 6] -
filter:保留满足条件的项
[1, 2, 3, 4].filter(x => x % 2 === 0)→[2, 4] -
reduce:累加或聚合
[1, 2, 3].reduce((sum, x) => sum + x, 0)→6
箭头函数让 find 和 some/every 更清晰
查找类方法常配合对象属性判断,箭头函数写起来一目了然:
-
users.find(u => u.id === 123)—— 找特定用户 -
tasks.some(t => t.status === 'pending')—— 是否有未完成任务 -
numbers.every(n => n > 0)—— 全为正数才返回 true
注意:这些方法不修改原数组,只返回新结果或布尔值/对象。
小心 this 和参数陷阱
箭头函数没有自己的 this,它会继承外层作用域的 this。这对事件回调或对象方法内调用很友好,但容易误用:
- ✅ 正确:在 class 方法里用箭头函数处理数组,this 指向实例
class List {<br> items = [1, 2, 3];<br> log() { this.items.forEach(x => console.log(x, this.id)); }<br>} - ❌ 错误:想用 arguments 或动态绑定 this?箭头函数做不到
[1,2].map(() => arguments[0])会报错 —— 箭头函数没有 arguments 对象
什么时候别用箭头函数
不是所有数组方法都适合箭头函数,尤其需要明确上下文时:
- 要用
call/apply控制 this(比如借用方法)→ 用普通函数 - 需要访问
arguments或new.target→ 用 function - 方法要作为构造函数(虽然数组方法本身不用 new)→ 箭头函数不能 new
- 逻辑复杂、多行、需提前 return 或调试 → 普通函数更易读
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











