Глубокое копирование объектов, тема на которой может споткнуться и бывалый программист. Лучше основательно вникнуть в нюансы, чтобы избежать часы мучений в поисках ошибки. Spread-оператор для копирования объектов JavaScript Каждый JavaScript-программист знает, что копирование объектов происходит по ссылке, а не по значению. Проблема легко решается с использование Spread-оператора. Вместо прямого копирования в строке «const ObjB = ObjA», достаточно написать «const ObjB = {...ObjA}» и проблема будет решена. Теперь объекты отделены друг от друга. Но что, если мы в свойство «country» захотим добавить свои свойства? Например, так: Ой... а что случилось? Почему значения поменялись в обоих объектах? Мы же копировали с использование спред-оператора... Догадывались о таком поведении или удивлены? Напишите в комментаряих! Все верно. Оператор скопировал значения, но значением свойства «country» является объект. Соответственно, в обоих случаях свойство ссылается на один участок памяти. Нюансик, не
На этом нюансе споткнется даже опытный JavaScript-программист. Неожиданности при копировании объектов
3 июня 20223 июн 2022
31
2 мин