Разница между методом Lodash _.clone () и оператором '=' для копирования объектов
В этой статье мы узнаем о разнице между использованием метода _.clone () в Lodash и использованием оператора '=' для копирования объектов. Оба эти метода используются для создания копии объекта в JavaScript. Однако оба работают по-разному.
Использование метода _.clone (): метод _.clone () создает новый объект и копирует каждое значение из оригинала в новый объект. Это создает неглубокую копию объекта. Любые изменения исходного объекта не влияют на скопированный объект.
Синтаксис:
_.clone (объект)
Параметры: эта функция принимает только один параметр, который является объектом, который необходимо скопировать.
Возвращаемое значение: возвращает неглубокую копию данного объекта.
Пример: Пример ниже показывает, что изменение исходного объекта не влияет на объект, скопированный с помощью функции _.clone ().
Javascript
const _ = require( "lodash" ); var originalflower = { Name: "Rose" , color: "Red" , petal: 5, }; // Creating a copy of the object var copyflower = _.clone(originalflower); // Printing the cloned object console.log( "Cloned object : " , copyflower); // As this is a shallow copy, changing // attributes of one object will not // affect other object originalflower.Name = "Red Rose" ; // Printing original flower // and cloned flower console.log( "original flower: " , originalflower); console.log( "copy flower: " , copyflower); |
Выход:
Клонированный объект: {Имя: 'Роза', цвет: 'Красный', лепесток: 5} оригинальный цветок: {Название: 'Red Rose', цвет: 'Red', лепесток: 5} копия цветка: {Имя: 'Роза', цвет: 'Красный', лепесток: 5}
Использование оператора '=' для копирования объекта: в этом подходе простое использование оператора '=' указывает скопированный объект на исходный объект, который уже существует. Изменение исходного объекта влияет на скопированный объект.
Пример: Пример ниже показывает, что изменение исходного объекта влияет на объект, скопированный с помощью оператора '='.
Javascript
const _ = require( "lodash" ); var originalFlower = { Name: "Rose" , color: "Red" , petal: 5, }; // Creating a copy of originlFlower var copyFlower = originalFlower; console.log( "Copy object : " , copyFlower); // As both originalFlower and // copyFlower point to same object // Changing one object will // affect other also originalFlower.Name = "Red Rose" ; // Printing the Name attrbute // of originalFlower and copyFlower. console.log( "The name of original flower is - " , originalFlower.Name); console.log( "The name of copy flower is - " , copyFlower.Name); |
Выход:
Копировать объект: {Имя: 'Роза', цвет: 'Красный', лепесток: 5} Название оригинального цветка - Красная роза. Название копии цветка - Красная роза.