Почему, когда мы переписываем значение метода foo
вложенного объекта s
, оно также перезаписывает исходный объект z
методом foo
?
Обьясните кто-нибудь, почему он делает и как не допустить переписывания?
const z = { foo: 'bar' };
const s = z;
s.foo = 'baz';
s == z // true
@HassanImam, спасибо! Но как мы можем предотвратить перезапись исходного obj?
Попробуйте клонировать объект, используя синтаксис распространения или Object.assign()
.
... const s = {...z};
Поскольку и
s
, иz
ссылаются на один и тот же объект