Объекты присваиваются по ссылке, поэтому b = a не копирует — оба указывают на один и тот же объект. Поверхностная копия дублирует верхний уровень, но делится вложенными ссылками; глубокая копия дублирует всё, полностью независимо.
js
original = { : , : { : } };
shallow = { ...original };
shallow. = ;
shallow.. = ;
original..;
