贝利信息

javascript箭头函数是什么_与传统函数有何不同?

日期:2026-01-08 00:00 / 作者:幻影之瞳
箭头函数不是语法糖,它与function函数在this绑定、arguments对象、new调用等方面存在本质区别:无独立this(继承外层)、无arguments、不可new调用、不支持generator/async generator,单表达式隐式返回需注意对象字面量括号。

箭头函数不是语法糖,它和 function 关键字声明的函数在 thisargumentsnew 调用等行为上有本质区别,不能随意替换。

箭头函数没有自己的 this,始终继承外层作用域的 this

这是最常踩坑的一点。传统函数的 this 取决于调用方式(如 obj.fn()this 指向 obj),而箭头函数的 this 在定义时就固定了,无法被 .call().apply().bind() 改变。

箭头函数没有 arguments 对象,也不支持 new 调用

它无法访问 arguments,也不能作为构造函数——调用 new 会直接抛出 TypeError: xxx is not a constructor

简写语法只适用于单表达式,多语句必须加 {}return

很多人以为 () => 1() => { 1 } 等价,其实后者不返回任何值(即返回 undefined)。

const objFactory = (id) => { id: id }; // ❌ 返回 undefined  
const objFactory = (id) => ({ id: id }); // ✅ 返回 { id: id }

真正难的不是记住规则,而是判断「这里该不该用箭头函数」——关键看是否依赖动态 this、是否需要被 new、是否要访问 arguments。其他时候,它只是更简洁的函数写法而已。