箭头函数天然适配函数式编程,适用于数组高阶函数回调,需注意this绑定、解构默认值及表达式优先原则。

箭头函数本身不是函数式编程的全部,但它天然适配函数式编程的核心习惯:简洁、无副作用、高阶函数组合。用得好,能大幅降低认知负荷;用错地方,反而破坏纯度和可读性。
优先用于数组高阶函数的回调
map、filter、reduce、find 等方法的参数本就是“接受一个函数”,箭头函数语法轻量、语义清晰,是理想选择。
- 单参数时省略括号:`items.map(item => item.name)`
- 返回对象需加小括号防歧义:`users.map(u => ({ id: u.id, fullName: `${u.first} ${u.last}` }))`
- 条件过滤保持一行:`activeUsers = users.filter(u => u.status === 'active' && u.lastLogin > cutoff)`
避免在需要 this 绑定的上下文中使用
箭头函数不绑定自己的 this,而是继承外层词法作用域的 this —— 这在 Vue Options API、React class 组件的方法定义中会出问题。
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
- ❌ 错误:`methods: { clickHandler: () => this.submit() }`(this 指向 window 或 undefined)
- ✅ 正确:`methods: { clickHandler() { this.submit() } }` 或 `clickHandler: function() { this.submit() }`
- ✅ React 类组件中可安全用于事件处理器:`
配合解构与默认值提升表达力
函数式风格强调输入即数据结构,箭头函数支持参数解构和默认值,让意图一目了然。
- 解构对象参数:`const getName = ({ firstName, lastName }) => `${firstName} ${lastName}``
- 带默认值:`const withDefault = (config = {}) => ({ ...defaults, ...config })`
- 组合使用:`const safeGet = ({ data = {}, path = '' }) => path.split('.').reduce((o, k) => o?.[k], data)`
慎用多行体,坚持“表达式优先”原则
函数式编程倾向表达式(有返回值)而非语句(执行动作)。箭头函数若用花括号+return,就退化为普通函数写法,失去优势。
- ✅ 推荐:`const isValidEmail = email => /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)`
- ⚠️ 谨慎:`const processUser = user => { console.log('start'); return transform(user); }`(日志副作用破坏纯度)
- ❌ 避免:把复杂逻辑塞进箭头函数体,应拆分为独立纯函数再组合










