Вебсправочник
Справочник JavaScript

Стрелочная функция: краткая запись и лексический this

Стрелочная функция удобна для коротких преобразований и использует this из окружающей области вместо собственного контекста вызова.

Назначение

Стрелочная функция удобна для коротких преобразований и использует this из окружающей области вместо собственного контекста вызова.

Как это работает

Выражение после стрелки возвращается неявно, блок с фигурными скобками требует return. Для возврата объекта выражение оборачивают в круглые скобки. Стрелку нельзя использовать как обычный конструктор через new.

Пример

const double=n=>n*2;
const item=id=>({id});
const noReturn=n=>{n*2;};
console.assert(double(4)===8);
console.assert(item(7).id===7);
console.assert(noReturn(4)===undefined);

Что должно получиться

Выражение возвращает число, скобки позволяют вернуть объект, а блок без return даёт undefined. Это различие часто объясняет неожиданный пустой результат map.

Граница применения и частая ошибка

Не заменяйте метод объекта стрелкой, если метод должен получать this от объекта слева от точки. Краткость записи не сохраняет автоматически семантику обычной функции.

Самостоятельная проверка

Сравните стрелку с выражением и стрелку с блоком без return. Затем верните объект в круглых скобках и проверьте его поле.

JavaScript в песочнице этого сайта не выполняется. Перенесите пример в отдельный учебный файл. Сначала проверьте исходный результат, затем измените входные данные; ошибка проверки означает, что результат отличается от ожидаемого.

Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.