Middle
Какви методи за клониране на обекти познаваш?
sobes.tech AI
Отговор от AI
Има няколко начина за клониране на обекти в JavaScript:
-
Повърхностно копиране (shallow copy) — копира само горното ниво на свойствата, вложените обекти остават като препратки.
- Използване на
Object.assign():const clone = Object.assign({}, original); - Оператор за разпръскване:
const clone = {...original};
- Използване на
-
Дълбоко копиране (deep copy) — създава пълно копие на обекта с всички вложени обекти.
- Сериализация и десериализация чрез JSON (работи само с прости обекти без функции, дати и т.н.):
const deepClone = JSON.parse(JSON.stringify(original)); - Използване на специализирани библиотеки, например
lodash:const _ = require('lodash'); const deepClone = _.cloneDeep(original);
- Сериализация и десериализация чрез JSON (работи само с прости обекти без функции, дати и т.н.):
-
Реализация на собствен метод за клониране — ако обектът съдържа методи или сложни типове, може да се реализира метод
clone()вътре в класа.
Изборът на метод зависи от структурата на обекта и изискванията за копиране. За прости обекти достатъчно е повърхностното копиране, за сложни — дълбокото.