let obj1 = {a: [1, 2]}; let obj2 = {a: [1, 2]}; Object.assign({}, obj1, obj2);
Полученный объект будет: {a: [1, 2]}.Однако будет ли массив [1, 2] ссылаться на массив в памяти obj1 или в памяти obj2?
{a: [1, 2]}
[1, 2]
const obj3 = Object.assign({}, obj1, obj2);
obj3.a будет означать obj2.a.С Object.assign по MDN
obj3.a
obj2.a
Object.assign
Свойства в целевом объекте будут перезаписаны свойствами в источниках, если они имеют одинаковый ключ.
Самое главное, что
Более поздние свойства источников аналогичным образом перезапишут более ранние.
Вы можете начать с чтения документации для Object.assign(): Объединение объектов с одинаковыми свойствами .
Object.assign()
Затем вы можете проверить с помощью строго равных :
let obj1 = {a: [1, 2]}; let obj2 = {a: [1, 2]}; let merge = Object.assign({}, obj1, obj2); obj1.a === merge.a; // false obj2.a === merge.a; // true