в чем разница между object spread и object assign в javascript при работе с дефолтными значениями
год назад
Nikolai Gagarinov
Ответы
Есть несколько способов копирования объектов и добавления/изменения их свойств. Два из наиболее часто используемых механизма для этого — spread-оператор и метод Object.assign()
. Оба способа могут использоваться для создания новых объектов и изменения их свойств, но у них есть важные различия, особенно в контексте задания дефолтных значений:
Spread-оператор, позволяет "распространять" свойства одного объекта в новый объект.
Пример:
В этом примере свойства из options
"распространяются" в новый объект config
, при этом если там совпадают ключи (свойства), то значения из более позднего объекта (в данном случае options
) перезаписывают значения из предыдущего (в данном случае defaults
).
Метод Object.assign()
принимает целевой объект и один или более источников, откуда он будет копировать собственные перечисляемые свойства. Этот метод также может использоваться для создания нового объекта, но синтаксис несколько отличается.
Как и в случае с оператором распространения, свойства из options
перезаписывают свойства из defaults
, если ключи совпадают. Однако здесь нужно указать пустой объект в качестве первого аргумента, чтобы создать новый объект, в противном случае изменения будут применены к найденному объекту.
9 месяцев назад
Ivan Gagarinov
Похожие вопросы