Tre nyttige prikker - resten og spredningen i JavaScript
Lukasz Kolko
ECMAScript 2015 bragte os en masse nyheder, som resulterede i et stort antal forbedringer. I dag vil vi se nærmere på to funktioner, der gør livet lettere. Mød rest-parametrene og spread-syntaksen.
Rest-syntaksen giver os mulighed for at repræsentere et ubestemt antal argumenter som et array. Se på en funktion, der lægger alle de overførte argumenter sammen.
Spread-operatoren giver os mulighed for at udvide iterable objekter til individuelle elementer. Denne funktionalitet er modsat af, hvad vi opnåede med restparametrene. Den kan anvendes på alle iterable objekter, f.eks. arrays, objekter, sæt, maps osv.
const sum = (x, y, z) => x + y + z;
const numbers = [1, 2, 3];
console.log(sum(...numbers)); // 6
Bemærk, at den kopi af objektet, der oprettes, er et nyt objekt med alle det oprindelige objekts egenskaber, men ingen af dets prototypiske oplysninger.
Bemærk, at spread-syntaksen skaber en "overfladisk" kopi af objektet, så "wallet"-egenskaben kopieres kun som en reference til det oprindelige underobjekt. Til dyb kloning kan du bruge JSON stringify/parse-tilgangen eller 'cloneDeep'-metoden fra Lodash afhængigt af dit objekts kompleksitet. I nogle tilfælde kan denne metode også være nyttig:
let personCopy = { ...person, wallet = {...person.wallet}};