Вы научитесь глубоко копировать не только обычные объекты, но и вложенные объекты, а также объекты, содержащие функции.

Глубокая копия:

Глубокая копия — это копия, создающая новый объект с новой ячейкой памяти для хранения объекта и всех его свойств. Вы можете увидеть это на изображении. Это означает, что если вы внесете изменения в клонированный объект, это не повлияет на исходный объект. Всякий раз, когда мы клонируем массивы и объекты в JavaScript, чтобы избежать потери данных.

Существует три способа глубокого копирования объекта.

  1. Использование оператора расширения ({…})
  2. Использование метода Object.assign()
  3. Использование Json.Parse() и Json.Stringify()

Использование оператора распространения:

Как видите, вы можете клонировать свойства обычных объектов с помощью оператора Spread, но мы не можем глубоко клонировать свойства вложенных объектов с помощью оператора Spread. Давайте посмотрим на следующем изображении….

Ключевое примечание. Мы можем выполнить глубокое копирование обычного объекта с помощью оператора распространения, но не можем выполнить глубокое копирование вложенного объекта. Это означает, что когда мы меняем свойство вложенного объекта клонированного объекта, это также изменит свойство исходного объекта. Это означает, что копирование вложенных объектов с использованием оператора распространения ведет себя как поверхностное копирование.

Использование метода Object.assign():

Как видите, вы можете клонировать свойства обычных объектов с помощью Object.assign(), но мы не можем глубоко клонировать свойства вложенных объектов с помощью Object.assign(). Давайте посмотрим на следующем изображении….

Ключевое примечание. Мы можем выполнить глубокое копирование обычного объекта с помощью Object.assign(), но не можем выполнить глубокое копирование вложенного объекта. Это означает, что когда мы меняем свойство вложенного объекта клонированного объекта, это также изменит свойство исходного объекта. Это означает, что для копирования вложенных объектов использование Object.assign() ведет себя как Shallow Copy.

Использование Json.parse() и Json.Stringify()

Это единственный способ выполнить глубокое копирование любых обычных и вложенных объектов. Вы можете увидеть это на изображении ниже…

Как глубоко клонировать объект, содержащий функцию в Javascript?

Как вы можете видеть на изображении выше, глубокое копирование объекта, содержащего функцию, возможно только с использованием оператора распространения и метода Object.assign(). не используя Json.parse() и Json.stringify().