Я думал о выполнении деструктуры объекта по сравнению с присваиванием. Я сделал простой тест:
const ITERATIONS = 999999;
const simpleObj = { a: 1, b: 2, c: 3 };
const newSimpleObj = { d: 4 };
const s1 = new Date().getTime();
for (let i = 0; i < ITERATIONS; ++i) {
const n = Object.assign({}, simpleObj, newSimpleObj);
}
console.log('End1:', new Date().getTime() - s1);
const s2 = new Date().getTime();
for (let i = 0; i < ITERATIONS; ++i) {
const n = { ...simpleObj, ...newSimpleObj };
}
console.log('End2:', new Date().getTime() - s2);
Я правильно это делаю? В этом тесте End1 показывает 172 мс, а End2 показывает 138 мс. Это действительно просто, и я думаю, что в более сложных функциях это может иметь большее значение. Я не смог найти ни одной статьи с оценками или утверждениями, которые могли бы доказать, что использование деструктуризации по сравнению с методом присвоения имеет преимущества. Есть ли другие преимущества или недостатки этого решения, такие как эффективность памяти, качество кода или подобное?
ОБНОВЛЕНИЕ: Я попытался http://jsben.ch/, и он показал, что assign
быстрее, но https://jsbench.me/ продемонстрировал почти 45% преимущества от деструктуризации объекта.