箭头函数是javaScript中语法更简洁的函数定义方式,无自身this、arguments、super和new.target,继承外层作用域;适用于回调和数组方法,但不可用作构造函数。

箭头函数是 javascript 中定义函数的一种简洁语法,它没有自己的 this、arguments、super 或 new.target,而是继承自外层作用域。它主要用来简化函数写法,尤其适合用在回调、数组方法(如 map、Filter)等场景。
语法更简洁
箭头函数省略了 function 关键字和 return(当只有一条表达式时自动返回):
- 传统函数:
const add = function(a, b) { return a + b; }; - 箭头函数:
const add = (a, b) => a + b; - 单参数可省括号:
const square = x => x * x; - 无参数需写空括号:
const sayHi = () => console.log('Hi');
this 绑定方式不同
传统函数的 this 取决于调用方式(谁调用,this 就指向谁),而箭头函数没有自己的 this,它会沿作用域链向上查找,使用定义时所在上下文的 this:
- 对象方法中用传统函数,
this指向该对象;但若内部回调用传统函数,this可能丢失(比如传给setTimeout) - 换成箭头函数后,
this保持外层对象的绑定,避免手动.bind(this)或用变量暂存const self = this
没有 arguments 对象
箭头函数内部访问不到 arguments,但可以用剩余参数(...args)替代:
立即学习“Java免费学习笔记(深入)”;
- 传统函数:
function sum() { return Array.from(arguments).reduce((a, b) => a + b); } - 箭头函数:
const sum = (...args) => args.reduce((a, b) => a + b);
不能作为构造函数使用
箭头函数没有 prototype 属性,也不能用 new 调用,否则会报错:
-
const Person = (name) => ({ name });→new Person('Alice')报错TypeError: Person is not a constructor - 需要构造实例时,必须用传统函数或 class
基本上就这些。箭头函数不是万能替代品,关键看是否需要独立的 this、arguments 或构造能力。用对地方,代码更干净;误用反而引发隐性 bug。