Если я собираюсь объединить два одинаковых объекта, какие ссылки на объекты используются? - PullRequest
0 голосов
/ 11 декабря 2018
let obj1 = {a: [1, 2]};
let obj2 = {a: [1, 2]};
Object.assign({}, obj1, obj2);

Полученный объект будет: {a: [1, 2]}.Однако будет ли массив [1, 2] ссылаться на массив в памяти obj1 или в памяти obj2?

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018
const obj3 = Object.assign({}, obj1, obj2);

obj3.a будет означать obj2.aObject.assign по MDN

Свойства в целевом объекте будут перезаписаны свойствами в источниках, если они имеют одинаковый ключ.

Самое главное, что

Более поздние свойства источников аналогичным образом перезапишут более ранние.

0 голосов
/ 11 декабря 2018

Вы можете начать с чтения документации для 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...