@schepetkin
junior frontend dev

Простой вопрос по js, скажите почему так работает и что почитать чтобы понять?

let z1 = { b : 2 }

 function zoo () {
   let value = z1.b

   ++value
   
   console.log(value)
   console.log(z1)
   
}


При вызове функции zoo (), в переменной value, мы присваиваем ссылку на объект z1 который расположен в глобальной области видимости.
Далее ++value, объект в локальной функции увеличивается, но в глобальной остается также 2. Почему так? если мы не копируем объект в переменную value, а только ссылаемся на другой объект. Почему локально он меняется, а глобально нет? Спасибо заранее кто подскажет.
  • Вопрос задан
  • 134 просмотра
Решения вопроса 1
@AknietKh
Ещё не junior frontend dev
typeof z1 //object
typeof z1.b // number
В value хранится не ссылка на объект, а значение свойства b.
z1.b возвращает значение по ключу b из объекта z1.
p.s. это мои предложения на основе имеющихся знаний
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Девид Фленеган, JavaScript подробное руководство - 6 издание.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы