При копировании объектов или массивов JavaScript копирует данные только на один уровень вглубь. Этот тип копирования называется поверхностным (shallow).
Поверхностное копирование с помощью метода spread
const myObj = {
one: 1,
two: 2,
three: 3,
};
const newObj = { ...myObj };
console.log(myObj === newObj);
// falseПоверхностное копирование при помощи метода Object.assign()
const myObj = {
one: 1,
two: 2,
three: 3,
};
const newObj = Object.assign({}, myObj);
console.log(myObj === newObj);
// falseПоверхностное копирование function()
const myObj = {
one: 1,
two: 2,
three: 3,
};
function shallowCopy(obj) {
return Object.assign({}, obj);
// или
// return { ...obj }
}
const newObj = shallowCopy(myObj);
console.log(newObj);
// {
// "one": 1,
// "two": 2,
// "three": 3
// }
console.log(myObj === newObj);
// false