Я хотел бы клонировать объект, чтобы изменить его и не влиять на исходный объект.
let object1 = {
a: 1,
b: 2,
c: 3
};
let object2 = Object.assign(object1);
object2.c = 999;
console.log(object1.c, object2.c);
// expected output: 3 999
// real output: 999 999
Я полагаю, что я неправильно использую функцию "назначить"...
Вам нужен пустой объект для назначения свойств Object.assign
из-за
Object.assign(target, ...sources)
let object2 = Object.assign({}, object1);
let object1 = {
a: 1,
b: 2,
c: 3
};
let object2 = Object.assign({}, object1);
object2.c = 999;
console.log(object1.c, object2.c);
Object.assign(object1);
?
Используйте Object.assign({}, object1)
. пустой объект будет клонирован, поэтому object1
будет добавлен в пустой объект.
assigm
==> assign
.
let object2 = Object.assign({}, object1);