Копирование
Полезные способы копирования объектов:
Object.assign
const colors5 = Object.assign(colors, {
red: 'red', // переписываем поле
white: '#fff', // создаём новое
});
Сравнение копий объектов
const colors = {
red: '#F00',
green: '#0F0',
blue: '#00F',
};
const colors2 = colors;
const colors3 = new Object(colors);
const colors4 = { ...colors }; // Современный способ копирования (без side-effect)
// можно добавлять новые свойства
const colors5 = {
...colors,
white: '#fff',
black: '#000',
};
Прямое сравнение объектов (side-effect)
colors === colors2; // true - храняться по одной ссылке
colors === colors3; // true - храняться по одной (new Object)
colors === colors4; // false - через spread оператор (...)
Через Object.is
Object.is(colors, colors2); // true
Object.is(colors, colors3); // true
Object.is(colors, colors4); // false