ПРИХОДИТЕ УЧИТЬСЯ НОВОЙ ПРОФЕССИИ ЛЕТОМ СО СКИДКОЙ ДО 70%Забронировать скидку

Возврат объекта из стрелочной функции ES6: разбор проблемы

Пройдите тест, узнайте какой профессии подходите и получите бесплатную карьерную консультацию
В конце подарим скидку до 55% на обучение
Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

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

JS
Скопировать код
const pullRabbitFromHat = () => ({ rabbit: 'Presto!' });

Такой подход позволяет получить объект простым и эффективным способом.

Пройдите тест и узнайте подходит ли вам сфера IT
Пройти тест

Разделяем секреты работы с объектами внутри функций-стрелок

Когда держать под контролем, а когда отпустить на волю

Функции-стрелки автоматически возвращают результат для отдельных выражений, поэтому в них не требуется явный return. Однако при работе с объектами необходимо поместить их в скобки, чтобы избежать недоразумений.

JS
Скопировать код
const presentGift = (gift) => ({ gift });
// Вот и подарок перед вами, но что же внутри?

Когда фокус сложнее, чем кажется

Если вам нужно выполнить несколько действий, то используйте обычные фигурные скобки и не забывайте про явный return.

JS
Скопировать код
const pullItemsFromHat = (item1, item2) => {
  console.log('Что же мне выпадет?...');
  return { firstItem: item1, secondItem: item2 };
};

Искусство или везение?

Начинающие разработчики часто путают фигурные скобки объекта со скобками блока кода. Для понятности кода рекомендуется заключать возвращаемый объект в скобки.

Применяем и удивляем объектами

Сокращение имен свойств как карточный фокус

Если имена переменных совпадают с ключами в вашем объекте, можно использовать сокращённую запись свойств.

JS
Скопировать код
const animalAppear = (cat, dog) => ({ cat, dog });
// И вдруг все дубликаты исчезли, словно по мановению волшебной палочки

Тонкости деструктуризации

Функции-стрелки элегантно справляются с деструктуризацией аргументов — это позволяет извлекать свойства объектов прямо в параметрах.

JS
Скопировать код
const getSpecs = ({ height, width }) => ({ height, width });
// Вы извлекли ровно то, что хотели. Волшебство!

Транспиляция: превращаем новое в старое

Чтобы ваш код был совместим с различными браузерами и средами, вы можете использовать такие инструменты, как Babel, для транспиляции в ES5.

JS
Скопировать код
// Доброе старое ES5, но мы можем его модернизировать
// Исходный код на ES6
const createBalloon = () => ({ color: 'Red' });
// Транспилированный код на ES5
var createBalloon = function () {
  return { color: 'Red' };
};

Финал фейерверка: к подножию совершенства

Искусное владение

Документация MDN — это настоящая книга магии, в которой вы найдёте множество примеров, описания ограничений и особенностей работы с функциями-стрелок.

Связь с зачарованным миром JS

Следите за последними новостями в мире JavaScript. Функции-стрелки раскрывают перед вами новые горизонты в программировании.

Мудрость магического содружества

Не забывайте использовать знания и опыт сообщества: обменивайтесь кодом и экспериментируйте, чтобы достичь мастерства.

Полезные материалы

  1. Выражения функций-стрелок – JavaScript | MDN — Подробная информация о функциях-стрелках.
  2. ES6 Погружение: функции-стрелки – Mozilla Hacks — Максимально глубокий анализ функций-стрелок и их особенностей.
  3. JavaScript: Функции-стрелки для начинающих — Введение в функции-стрелки для новичков.
  4. Особенности работы с функциями-стрелок — Разъяснения, как возвращать объекты из функций-стрелок.
  5. Спецификация языка ECMAScript 2015 – ECMA-262 6-е издание — Официальная документация ECMAScript по функциям-стрелок.
  6. Когда не следует использовать функцию-стрелку — Подробно о ситуациях, в которых следует избегать функций-стрелок.
  7. 13. Функции-стрелки — Рассмотрение преимуществ и ограничений функций-стрелок в ES6.