Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник JavaScript

Arrow function (=>)

Короткая запись функции.

Доступно с: ES2015

Синтаксис

(params) => expression / (params) => { … }

Примеры

Короткая форма возвращает результат выражения:

const double = (n) => n * 2;
 
console.log(double(4));

Результат:

8

Тело в фигурных скобках требует return:

const sum = (a, b) => {
  const result = a + b;
  return result;
};
 
const makeUser = (name) => ({ name });
 
console.log(sum(2, 3));
console.log(makeUser('Anna').name);

Результат:

5
Anna

Стрелочная функция берёт this снаружи:

const timer = {
  seconds: 3,
  start() {
    [1, 2].forEach(() => {
      console.log(this.seconds);
    });
  },
};
 
timer.start();

Результат:

3
3

Примечания

Чтобы вернуть объект в короткой форме, оберните его в круглые скобки: () => ({ a: 1 }), иначе фигурные скобки примут за тело функции.

У стрелочной функции нет своего this и arguments, и её нельзя вызвать через new. Поэтому для методов объектов обычно используют обычный синтаксис метода.

См. также

  • Default parameters — Значение параметра, если аргумент не передан.
  • Rest parameters — Собирает оставшиеся аргументы функции в массив.
  • Function.prototype.bind — Создаёт копию функции с закреплённым this и, при желании, аргументами.

В учебнике

  • Стрелочные функции — Функциональные выражения и стрелочные функции в JavaScript — короткая запись, неявный return и тело в фигурных скобках.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.