Преимущества, недостатки клонирования объекта с помощью JSON.stringify

TechnoFunnel представляет еще одну статью о глубоком клонировании объектов с помощью JSON.stringify более подробно. Мы также обсудим преимущества и недостатки клонирования с использованием подхода JSON.stringify. Давайте поищем простую реализацию JSON.stringify для клонирования объекта.

В приведенном выше коде у нас есть простая переменная, которая сначала преобразуется в «строковый» формат и сохраняется внутри переменной. Затем эту переменную можно проанализировать обратно в объектную форму с помощью «JSON.parse».

Как только строка проанализирована, объект реконструируется из строкового объекта. Ниже приведен результат:

Объект, созданный выше «clonedObject», является отдельным объектом, имеющим другой блок памяти. Объект не является ссылкой на исходный объект «employeeData». Давайте рассмотрим более подробную информацию о клонировании объектов с помощью этого метода.

Преимущества клонирования объекта с помощью JSON.stringify

  1. Сложные объекты глубоко клонируются с помощью JSON.stringify
  2. С помощью этого метода объект глубоко клонирован.

Добавим еще один ключ «адрес» в переменную «employeeData». Этот ключ представляет собой сложный тип, содержащий дополнительные пары «ключ-значение». Ниже приведен сложный объект, который нам нужно клонировать следующим.

В приведенном выше примере нам нужно убедиться, что свойство «адрес» копируется по значению, а не по ссылке, используя данный подход глубокого клонирования. Давайте изменим существующий код, чтобы он содержал сложный тип данных, и применим его.

На изображении выше мы видим, что следующее выражение: «clonedObject.address === employeeData.address» оценивается как «false», что означает, что мы достигли глубокого клонирования. Свойство сложного типа «адрес» объекта «employeeData» и «clonedObject» не приравнивается к истине, означает, что они указывают на отдельную ячейку памяти, и изменения «адреса» в одном объекте не влияют на значения другого.

Недостатки клонирования объекта с помощью JSON.stringify

  1. Главный недостаток - «функции» не копируются.

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

Выполнив приведенный выше код, мы видим, что целевой объект не содержит функции, которая добавляется к объекту «getData». Все основные и сложные данные доступны объекту «newData», за исключением добавленной функции.

Вывод:

JSON.stringify - самый простой метод клонирования объекта. В отдельной статье мы остановимся и на других методах. Подпишитесь на нас, чтобы увидеть похожие статьи.