箭头函数的核心是理解其与普通函数的本质差异:无独立this、不绑定arguments、不可构造;语法上支持单参数省括号、对象返回需小括号包裹;适用简短回调和闭包,禁用于对象方法、构造函数等场景。

箭头函数的核心不是画图,而是理解它和普通函数的本质差异。思维导图只是辅助梳理的工具,重点在于把逻辑关系理清楚——结构清晰、关键词准确、层级不混乱。
语法形式与参数规则
这是最基础也最容易出错的部分:
- 单个参数可省括号:
(x) => x * 2等价于x => x * 2 - 无参或多个参数必须加括号:
() => console.log('hi')或(a, b) => a + b - 函数体只有一条语句且为返回值,可省大括号和 return:
x => x + 1 - 想返回对象字面量,必须用小括号包裹:
() => ({ name: 'Alice' }),否则会被解析为函数体 - 不支持 arguments 对象,要用 rest 参数替代:
(...args) => args.length
this 绑定机制
箭头函数没有自己的 this,它会沿作用域链向上找外层函数(或全局)的 this 值:
将一个或多个视频上传至YouTube。当用户想“上传到YouTube”“发YouTube”“批量上传”“upload to YouTube”“post videos to YouTube”或发布到YouTube时使用此技能。
- 在对象方法中使用箭头函数,this 不指向该对象,而是定义时所在上下文
- 定时器、事件回调里常用它避免手动 bind(this)
- 不能用 call/apply/bind 改变 this,因为 this 是词法绑定、不可重写
- 构造函数不能用箭头函数:没有 prototype,也不能 new
适用与禁用场景
不是“能用就用”,而是“该用才用”:
- 适合:简短回调(如 map/filter)、需要继承外层 this 的闭包、函数式编程风格的链式操作
- 禁用:对象方法(需动态 this)、需要 arguments 的场景、需要 new 的构造逻辑、需要 super 或 new.target 的类内部
- 注意:Vue Options API 的 methods 里慎用箭头函数,会导致 this 指向丢失
与其他特性的交互
它不是孤立存在的,要放在 ES6 整体演进中看:
- 默认参数可用:
(name = 'guest') => `Hello ${name}`,但不能引用后面参数(暂时性死区) - 不绑定 arguments,但可以和解构、rest 参数配合:
([a, b], ...rest) => a + b + rest.length - 不能作为 Generator 函数(不支持 * 和 yield)
- 没有 arguments.callee,递归需靠命名或外部变量

















