2021-03-23 12:02:00
Что означает глубокая (deep) и поверхностная (shallow) копия объекта?
Передача по значению и по ссылке
Есть два способа передачи и копирования: один по значению, а другой по ссылке. Когда вы копируете что-то по значению, это означает, что вы создаете новое отдельное и независимое значение, подобное оригиналу - глубокая копия( Deep Copy ).
Но когда вы копируете что-то по ссылке, вы создаете просто псевдоним оригинала, а не новую или независимую копию - поверхностную копию( Shallow copy ).
Глубокое копирование
Когда вы создаете глубокую копию, вы создаете идентичную копию исходного элемента с его свойствами.
Оригинал и копия не связаны, что означает, если вы изменили свойства оригинала, это не повлияет на скопированный элемент и не изменит его.
Поверхностное копирование
С другой стороны, когда вы создаете поверхностную копию, вы создаете новую копию, которая связана с оригиналом.
Таким образом, когда вы меняете оригинал, это также повлияет и изменит скопированный, и то же самое, если вы изменили что-то в скопированном элементе, это же что-то изменится и в оригинале.
1.9K views09:02