JavaScript 箭头函数

预计阅读时间1 分 114 views

箭头函数是 ES6 推出的新特性,它让我们能更简单、更快捷地写函数。特别在做一些快速操作,比如回调或者简单计算时,箭头函数特别好用。而且,它在处理 this 这个关键字时,比传统函数更直观。

需要注意的地方

  1. 没有自己的thisarguments:箭头函数不会创建自己的thisarguments等变量,它会直接使用外面函数的这些变量。
  2. 不能当构造函数:不能用 new 关键字来创建箭头函数的新实例,否则会报错。
  3. 不能做生成器:箭头函数里不能用 yield 关键字。

怎么使用箭头函数

定义箭头函数

定义箭头函数的语法非常简洁。基本语法如下:

const add = (a, b) => a + b;

如果函数体包含多条语句,需要用大括号包裹,并显式使用 return 返回值:

const add = (a, b) => {
  const sum = a + b;
  return sum;
};

使用箭头函数处理 this

箭头函数在处理 this 关键字时,与传统函数的行为不同。箭头函数不会创建自己的 this,它会继承外层上下文的 this 值:

function Person() {
  this.age = 0;

  setInterval(() => {
    this.age++;
    console.log(this.age);
  }, 1000);
}

const person = new Person(); // 每秒输出递增的年龄

避免箭头函数作为构造函数

箭头函数不能作为构造函数使用,尝试使用 new 调用箭头函数会引发 TypeError

const Foo = () => {};
const foo = new Foo(); // TypeError: Foo is not a constructor

传递参数

箭头函数不绑定 arguments 对象,但可以使用剩余参数语法获取传递的参数。下面这段代码定义了一个箭头函数 sum,该函数接收任意数量的参数,并计算它们的总和。这是通过使用 ES6 中的剩余参数(...args)和解构赋值来实现的。最后,使用 reduce 方法来累加所有传入的参数值。

const sum = (...args) => args.reduce((acc, curr) => acc + curr, 0);
console.log(sum(1, 2, 3, 4)); // 10
分享此文档

JavaScript 箭头函数

或复制链接

本页目录