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 и тело в фигурных скобках.