#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 };
Комментариев нет:
Отправить комментарий