Страницы

Поиск по вопросам

среда, 22 января 2020 г.

ES6. Клонирование объектов через спред оператор

#ecmascript_6


Есть ли разница в способах клонирования объектов с использованием спред оператора?

const a = { s:1, d:2 };
// этим способом
const {...b} = a;
// и этим способом
const c = {...a};

    


Ответы

Ответ 1



Судя по тестам при необходимости клонирования объекта "как есть" никакой разницы нет. Однако если нужно убрать, добавить или изменить что-то в результирующем объекте тогда разница есть. Если нужно клонировать целевой объект частично тогда наш выбор первый вариант: const first = { a:1, b:2, c:3, d:4 }; const { a, ...second } = first; console.log(second); // => { b:2, c:3, d:4 }; Если нужно клонировать целевой объект и добавить или изменить какие-то поля тогда наш выбор второй вариант: Добавить: const first = { a:1, b:2, c:3, d:4 }; const second = { ...first, e: 5}; console.log(second); // => { a:1, b:2, c:3, d:4, e:5 }; Изменить: const first = { a:1, b:2, c:3, d:4 }; const second = { ...first, d: 5}; console.log(second); // => { a:1, b:2, c:3, d:5 };

Комментариев нет:

Отправить комментарий