@stanislavkm

Почему переменная не копирует ссылку на объект?

Разбирал такие случаи, тут понятно:
let first = {name:'hello'} // в переменной first хранится ссылка на этот объект
let second = first  // в переменную second записали ссылку на объект first
first.name = 'bye' // перезаписали в ключ объекта first name: 'bye'

console.log(second.name) // bye, так как ссылка у переменной second все равно на объект first


Но увидел такой пример и не могу понять, почему:
let first = {name:'hello'} // в переменной  first хранится ссылка на объект
let second = first // в переменную second записали ссылку на объект first
first = {name: 'bye') // в переменную first задали ссылку на новый объект

console.log(second.name) //hello

почему выводится 'hello' мы же изменили объект, ссылка на который лежит в переменной first, и ссылка на него лежит в second?
  • Вопрос задан
  • 65 просмотров
Решения вопроса 2
Aetae
@Aetae Куратор тега JavaScript
Тлен
= - это присваивание, а не изменение. В случае с объектом присваивание ссылки, но всё ещё присваивание.
Ответ написан
Комментировать
lina666
@lina666
Изучаю веб ЯП.
В 1ом варианте ты в объекте изменяешь св-во name
Во 2ом варианте ты присваиваешь переменной новую ссылку на объект т.к создаешь новый и присваиваешь его переменной.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы