Как работает функция Object.assign?

1

Я хотел бы клонировать объект, чтобы изменить его и не влиять на исходный объект.

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

Я полагаю, что я неправильно использую функцию "назначить"...

  • 0
    попробуйте let object2 = Object.assign({}, object1);
  • 1
    Прочитайте документацию по MDN: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
Показать ещё 2 комментария
Теги:

2 ответа

6
Лучший ответ

Вам нужен пустой объект для назначения свойств 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);
  • 0
    ты должен был оставить эмоции, это был хороший смешок
  • 0
    в чем смысл этого "осложнения"? почему бы не клонировать только Object.assign(object1); ?
Показать ещё 7 комментариев
2

Используйте Object.assign({}, object1). пустой объект будет клонирован, поэтому object1 будет добавлен в пустой объект.

  • 0
    У вас есть опечатка - assigm ==> assign .
  • 0
    @ Александр Спасибо, исправлено :)
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню