Народ, всем привет. Работа с объектами и массивами в JavaScript может вызывать путаницу, особенно когда речь заходит о копировании данных. Новички часто сталкиваются с тем, когда изменения в одной переменной неожиданно отражаются в другой. Чтобы разобраться, важно понимать разницу между поверхностным (shallow copy) и глубоким копированием (deep copy). Сегодня постараемся углубиться «внутрь», так сказать, и начнем мы с самого простого. Поехали. В JavaScript есть два основных типа данных: let a = 5; let b = a; // копируется значение b = 10; console.log(a); // 5 let obj1 = { name: "Alex" }; let obj2 = obj1; // копируется ссылка obj2.name = "Olga"; console.log(obj1.name); // "Olga" Это и становится причиной того, что простое присваивание объекта не создает его копию, а только указывает на ту же область памяти. Поверхностная копия создает новый объект, но копирует только верхний уровень свойств. Если свойство является вложенным объектом, копируется лишь ссылка на него. Существует несколько
Поверхностное и глубокое копирование в JavaScript
13 октября 202513 окт 2025
16
3 мин