Sobes.tech
Назад к вопросам
Middle
1

Как скопировать объект так, чтобы получить новый экземпляр, а не ссылочную копию?

Компании, где спрашивали
ООО Делай мебель

Ответ от нейросети

sobes.tech AI

Чтобы скопировать объект и получить новый экземпляр, а не ссылку на исходный объект, можно использовать несколько подходов в JavaScript:

  1. Поверхностное копирование — копирует только первый уровень свойств:
const original = { a: 1, b: { c: 2 } };
const copy = { ...original };
// или
const copy2 = Object.assign({}, original);

Однако вложенные объекты будут ссылками на те же объекты.

  1. Глубокое копирование — создает полностью независимую копию, включая вложенные объекты:
  • Через сериализацию:
const deepCopy = JSON.parse(JSON.stringify(original));

Минусы: не копирует функции, даты, undefined и другие специальные типы.

  • С помощью специализированных библиотек, например lodash:
import _ from 'lodash';
const deepCopy = _.cloneDeep(original);

Таким образом, для полного копирования объекта лучше использовать глубокое копирование, чтобы избежать общих ссылок на вложенные объекты.