Обнуление связанных переменных

есть такой код.

let a = {z: 1}
let b = a;

a.z = 2;

И получается что b.z тоже равно 2 так как мы меняем обект по ссылке.

но если я напишу

a = null;

то переменная а обнулится но переменная b нет и в ней все еще будет хранится значение Но почему? у них же одна ссылка.


Ответы (1 шт):

Автор решения: Алексей Шиманский

Обе переменные ссылаются на одну область. Если можно так выразиться - смотрят на одну область. Присвоение переменной значение null лишь означает, что теперь эта самая переменная не будет смотреть на ту самую область с объектом.

Тоже самое будет если в а записать любое другое значение. Переменная будет смотреть на другую область, где записано другое значение.

→ Ссылка