Trzy przydatne punkty - reszta i spread w JavaScript
Łukasz Kolko
ECMAScript 2015 przyniósł nam wiele nowości, które zaowocowały dużą liczbą usprawnień. Dziś przyjrzymy się bliżej dwóm funkcjom, które ułatwiają życie. Poznaj paremetry reszty i składnię spread.
Składnia reszty pozwala nam reprezentować nieokreśloną liczbę argumentów jako tablicę. Spójrzmy na funkcję, która sumuje wszystkie przekazane argumenty.
Operator spread pozwala nam rozszerzać obiekty iterowalne na pojedyncze elementy. Funkcjonalność ta jest przeciwieństwem tego, co osiągnęliśmy za pomocą pozostałych parametrów. Można go zastosować do wszystkich iterabli, takich jak tablice, obiekty, zbiory, mapy itp.
const sum = (x, y, z) => x + y + z;
const numbers = [1, 2, 3];
console.log(sum(...numbers)); // 6
Składnia spread efektywnie przechodzi o jeden poziom głębiej podczas kopiowania tablicy. Jeden poziom oznacza, że kopiowany jest pierwszy poziom referencji.
Należy zauważyć, że utworzona kopia obiektu jest nowym obiektem ze wszystkimi właściwościami oryginalnego obiektu, ale bez jego prototypowych informacji.
Zauważ, że składnia rozprzestrzeniania tworzy "płytką" kopię obiektu, więc właściwość "wallet" zostanie skopiowana tylko jako odniesienie do oryginalnego podobiektu. Do głębokiego klonowania można użyć metody stringify/parse JSON lub metody "cloneDeep" dostarczanej przez Lodash, w zależności od złożoności obiektu. W niektórych przypadkach ta metoda może być również pomocna:
let personCopy = { ...person, wallet = { ...person.wallet}};