Стрелочная функция: краткая запись и лексический 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 в песочнице этого сайта не выполняется. Перенесите пример в отдельный учебный файл. Сначала проверьте исходный результат, затем измените входные данные; ошибка проверки означает, что результат отличается от ожидаемого.