Drie nuttige punten - de rest en de spreiding in JavaScript
Lukasz Kolko
ECMAScript 2015 bracht ons veel nieuws, wat resulteerde in een groot aantal verbeteringen. Vandaag nemen we twee functies onder de loep die het leven eenvoudiger maken. Maak kennis met de restparemeters en de spread syntax.
Met de rest-syntax kunnen we een onbepaald aantal argumenten weergeven als een array. Kijk eens naar een functie die alle doorgegeven argumenten optelt.
Met de spread operator kunnen we iterable objecten uitzetten in individuele elementen. Deze functionaliteit is tegengesteld aan wat we bereikten met de restparameters. Het kan worden toegepast op alle iterables, zoals arrays, objecten, sets, maps, enz.
const som = (x, y, z) => x + y + z;
const getallen = [1, 2, 3];
console.log(som(...getallen)); // 6
De spread syntaxis gaat effectief één niveau dieper tijdens het kopiëren van een array. Eén niveau betekent dat het eerste niveau van referenties wordt gekopieerd.
Merk op dat de kopie van het object dat wordt gemaakt een nieuw object is met alle eigenschappen van het oorspronkelijke object, maar zonder zijn prototype-informatie.
Merk op dat de gespreide syntaxis een 'ondiepe' kopie van het object maakt, dus de eigenschap 'wallet' wordt alleen gekopieerd als een verwijzing naar het oorspronkelijke subobject. Voor deep-cloning kun je JSON stringify/parse gebruiken of de methode 'cloneDeep' van Lodash, afhankelijk van de complexiteit van je object. In sommige gevallen kan deze methode ook nuttig zijn:
let personCopy = { ...person, wallet = {...person.wallet}};
We kunnen voorwaardelijk eigenschappen toevoegen aan een nieuw object dat we maken door gebruik te maken van de spread operator in combinatie met kortsluitingsevaluatie.