Вопрос №72097 от пользователя Nikita в уроке «Вложенные объекты», курс «JS: Объекты»

Nikita

Здравствуйте, вопросы:

  1. Если в этом случаи константа 'company' была бы просто константой (а не объект) то ключ 'company' не перенял бы её значение, правильно?
  2. Как я понимаю присваивая ключу имя в объекте я могу сам того незная задать моему ключу (при объявлении) значение другого глобального объекта в проекте (если до этого был объект с названием 'company')?

Код: const company = { name: 'Hexlet' }; const user = { company };

4 0

Aleksandr Litvinov

Добрый день.

  1. Что значит "просто константой"? Строка? Попробуйте выполнить такой код в консоли в браузере: const company2 = 'Hexlet'; const user2 = { company }; и посмотреть, что будет находиться в переменной user2. Также можете поэкспериментировать и с другими значениями
  2. Если вы выполните тот код, который привели в вопросе, то вы сначала перезапишете глобальную переменную, а потом поместите новое значение внутрь объекта user.
0

Nikita

Aleksandr Litvinov, заранее благодарю за терпение, попытаюсь задать как можно конкретно вопрос.

  1. const company = { name: 'Hexlet' }; const user = { company } - это получается объект в объекте, правильно?
  2. Задавая ключу в объекте имя, надо проверить, чтобы название не совпадало с другими константами/ массивами/ функциями/ переменными в модуле, в котором я работаю. (Если я хочу чтобы он был только объявлен с новым каким-то свойством) Правильно?
  3. Можете пожалуйста объяснить, что значит "то вы сначала перезапишите глобальную переменную"?
0

Aleksandr Litvinov

  1. Верно

  2. Нет, как-то специально проверять нет необходимости. Обычно объекты создаются таким образом: company = { name: 'Hexlet' }. Никаких проблем с названиями внутренних ключей при этом не возникает.

  3. Прошу прощения, был не прав. Если у вас где-то была определена переменная таким образом: const company = 'Tesla', то на повторное определение такой же переменной const company = { name: 'Hexlet' } появится ошибка и перезаписи первой переменной не случится.

0

Nikita

Aleksandr Litvinov, спасибо. У меня был пробел в теории, прочитал ещё раз и понял.

0

Используйте Хекслет по максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Даю согласие на обработку персональных данных, соглашаюсь с «Политикой конфиденциальности» и «Условиями оказания услуг»

Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Фронтенд-разработчик
Профессия
Разработка фронтенд-компонентов для веб-приложений
18 августа 10 месяцев
Иконка программы Python-разработчик
Профессия
Разработка веб-приложений на Django
18 августа 10 месяцев
Иконка программы Java-разработчик
Профессия
Разработка приложений на языке Java
18 августа 10 месяцев
Иконка программы PHP-разработчик
Профессия
Разработка веб-приложений на Laravel
18 августа 10 месяцев
Иконка программы Node.js-разработчик
Профессия
Разработка бэкенд-компонентов для веб-приложений
18 августа 10 месяцев
Иконка программы Верстальщик
Профессия
Верстка с использованием последних стандартов CSS
в любое время 5 месяцев
Иконка программы Fullstack-разработчик
Профессия
Новый
Разработка фронтенд- и бэкенд-компонентов для веб-приложений
18 августа 16 месяцев
Иконка программы Разработчик на Ruby on Rails
Профессия
Создание веб-приложений со скоростью света
18 августа 5 месяцев