Преимущества, недостатки клонирования объекта с помощью JSON.stringify
TechnoFunnel представляет еще одну статью о глубоком клонировании объектов с помощью JSON.stringify более подробно. Мы также обсудим преимущества и недостатки клонирования с использованием подхода JSON.stringify. Давайте поищем простую реализацию JSON.stringify для клонирования объекта.
В приведенном выше коде у нас есть простая переменная, которая сначала преобразуется в «строковый» формат и сохраняется внутри переменной. Затем эту переменную можно проанализировать обратно в объектную форму с помощью «JSON.parse».
Как только строка проанализирована, объект реконструируется из строкового объекта. Ниже приведен результат:
Объект, созданный выше «clonedObject», является отдельным объектом, имеющим другой блок памяти. Объект не является ссылкой на исходный объект «employeeData». Давайте рассмотрим более подробную информацию о клонировании объектов с помощью этого метода.
Преимущества клонирования объекта с помощью JSON.stringify
- Сложные объекты глубоко клонируются с помощью JSON.stringify
- С помощью этого метода объект глубоко клонирован.
Добавим еще один ключ «адрес» в переменную «employeeData». Этот ключ представляет собой сложный тип, содержащий дополнительные пары «ключ-значение». Ниже приведен сложный объект, который нам нужно клонировать следующим.
В приведенном выше примере нам нужно убедиться, что свойство «адрес» копируется по значению, а не по ссылке, используя данный подход глубокого клонирования. Давайте изменим существующий код, чтобы он содержал сложный тип данных, и применим его.
На изображении выше мы видим, что следующее выражение: «clonedObject.address === employeeData.address» оценивается как «false», что означает, что мы достигли глубокого клонирования. Свойство сложного типа «адрес» объекта «employeeData» и «clonedObject» не приравнивается к истине, означает, что они указывают на отдельную ячейку памяти, и изменения «адреса» в одном объекте не влияют на значения другого.
Недостатки клонирования объекта с помощью JSON.stringify
- Главный недостаток - «функции» не копируются.
Одним из основных недостатков использования этого метода для клонирования объекта является то, что мы не можем копировать функции, доступные в целевых объектах. Давайте искать объект, содержащий функцию, в качестве ключа объекта.
Выполнив приведенный выше код, мы видим, что целевой объект не содержит функции, которая добавляется к объекту «getData». Все основные и сложные данные доступны объекту «newData», за исключением добавленной функции.
Вывод:
JSON.stringify - самый простой метод клонирования объекта. В отдельной статье мы остановимся и на других методах. Подпишитесь на нас, чтобы увидеть похожие статьи.