Полный текст
Ссылочный тип данных в JavaScript: ключ к эффективному кодуПочему, скопировав объект product2 = product1, вы с удивлением обнаруживаете, что, поменяв product2.price, вы изменили и product1? Это не баг, а классическая работа ссылочных типов. В JavaScript объекты и массивы ведут себя не так, как примитивы: при присваивании копируется не сам объект, а лишь «адрес» в памяти. В итоге обе переменные указывают на одни и те же данные.Это фундаментальное поведение, непонимание которого приводит к массе неожиданных багов. Но что, если вам всё-таки нужна настоящая, независимая копия объекта? Для этого есть свои инструменты: от простого Spread-оператора и Object.assign() до structuredClone(). Выясним, как правильно копировать объекты и когда какой способ использовать, чтобы не выстрелить себе в ногу.