День 17: Object.assign

Сегодня я хочу заняться самообучением Object.assign. Итак, давайте углубимся в это.

Объект.назначить

Object.assign аналогичен object.keys и object.values. Одно ключевое отличие для Object.assign выводит объект вместо массива. Еще одно отличие состоит в том, что он принимает 2 объекта вместо 1; одна цель и один источник (пример: Object.assign({target}, {source}). Метод объединит оба объекта в один объект. Хорошо, мило!

А как насчет похожих ключей?

Так что же происходит, когда каждый из этих объектов содержит один и тот же ключ? Object.assign перезапишет свойство в целевом объекте ключом в исходном объекте.

Рассмотрим пример ниже. Есть целевой объект с двумя ключами (a = 1 и b = 2). И есть исходный объект с двумя ключами (b = 4 и c = 5). Когда мы помещаем эти объекты в качестве аргументов внутри Object.assign, исходный объект переопределяет целевой объект. Это вернет целевой объект, который был изменен.

Что-нибудь еще?

Важно отметить еще одну вещь. Object.assign не просто возвращает новый объект. Он возвращает целевой объект. Это означает, что целевой объект изменяется навсегда. Если вам нужно, чтобы целевой объект оставался неизменным где-то еще в вашей программе, вы можете создать новую переменную с этим объектом, чтобы исходный объект остался нетронутым.