@Vladddddd

Почему в консоли не null?

Добрый день! Помогите, пожалуйста, разобраться со следующим кодом:
var a = {};
+function b (a) {
a.a = 10;
a = null;
}(a);
console.log(a);

Не могу понять почему в консоли выходит {a: 10}, а не null, помогите разобраться.
  • Вопрос задан
  • 448 просмотров
Решения вопроса 1
rockon404
@rockon404
Frontend Developer
Глобальная a и локальная а ссылаются на один и тот же объект. Вы переопределяете только локальную a из скоупа функции b.
Ваш код для наглядности можно переписать так:
var a = {};

+function b(c) {
  console.log(a === c);  // true
  c.a = 10;
  c = null;
  console.log(a === c);  // false
}(a);

console.log(a);  // { a: 10 }

Тут а и c ссылки которые ссылаются на один и тот же объект. Вы переопределили c, а продолжает ссылаться на объект.
Почитайте.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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