Ответ
Глубокое копирование создает полностью независимую копию объекта, включая все вложенные объекты. Поверхностное копирование создает новый объект, но вложенные объекты остаются ссылками на оригиналы.
Пример с поверхностным копированием:
const obj = { a: 1, b: { c: 2 } };
const shallowCopy = { ...obj };
shallowCopy.b.c = 3; // изменит и оригинальный obj.b.cПример с глубоким копированием:
const deepCopy = JSON.parse(JSON.stringify(obj));
deepCopy.b.c = 4; // не повлияет на оригинальный objМетоды глубокого копирования: JSON.parse(JSON.stringify()), библиотеки типа Lodash (_.cloneDeep()), рекурсивное копирование. Для поверхностного: spread-оператор, Object.assign(), Array.slice().