Back to questions
Middle
2
Как скопировать объект так, чтобы получить новый экземпляр, а не ссылочную копию?
Companies where asked
ООО Делай мебель
Answer from AI
sobes.tech AI
Чтобы скопировать объект и получить новый экземпляр, а не ссылку на исходный объект, можно использовать несколько подходов в JavaScript:
- Поверхностное копирование — копирует только первый уровень свойств:
const original = { a: 1, b: { c: 2 } };
const copy = { ...original };
// или
const copy2 = Object.assign({}, original);
Однако вложенные объекты будут ссылками на те же объекты.
- Глубокое копирование — создает полностью независимую копию, включая вложенные объекты:
- Через сериализацию:
const deepCopy = JSON.parse(JSON.stringify(original));
Минусы: не копирует функции, даты, undefined и другие специальные типы.
- С помощью специализированных библиотек, например lodash:
import _ from 'lodash';
const deepCopy = _.cloneDeep(original);
Таким образом, для полного копирования объекта лучше использовать глубокое копирование, чтобы избежать общих ссылок на вложенные объекты.