Spread / Rest

JavaScript 🟢 Junior

Definition

L'operateur ... sert de spread (etaler un iterable) ou rest (collecter les arguments restants). Spread copie superficiellement, rest regroupe dans un tableau.

Analogie

Spread = etaler les cartes sur la table. Rest = ramasser toutes les cartes restantes en un paquet.

Exemple de code

// Spread
const merged = { ...obj1, ...obj2 };
const copy = [...array];
// Rest
function sum(...nums) {
  return nums.reduce((a, b) => a + b, 0);
}

Cas d'usage

Copier/fusionner objets et tableaux de maniere immutable, collecter des arguments variadiques.

Anti-pattern

Croire que spread fait une copie profonde (deep clone) : les objets imbriques restent par reference.
#core#ES6#syntaxe