Rest operator u JavaScript-u
Ovaj čas ćemo započeti sa određenim objašnjenjem.
Sve prethodne lekcije u ovoj sekciji vam nisam
rekao celu istinu o operatoru ...
U stvari, ovaj operator, u zavisnosti od mesta u kodu, može se zvati ili spread operator, ili rest operator.
Kao što već znate, kada spread operator
stoji ispred niza ili stringa, on ih deli
na pojedinačne vrednosti. Rest operator,
iako ima istu sintaksu u obliku ...,
je namenjen za nešto drugo.
Sada ćemo da vidimo za šta. Neka postoji funkcija koja prima dva parametra:
function func(a, b) {
console.log(a);
console.log(b);
}
Trebalo bi da već znate da ako funkciji prosledite više parametara, to neće izazvati grešku:
func(1, 2, 3, 4, 5);
Operator rest omogućava da dobijete sve
višak parametara u obliku niza. Za to
u funkciju se dodaje još jedan parametar (obavezno
poslednji), ispred kojeg se pišu 3 tačke:
function func(a, b, ...rest) {
}
Ove tri tačke su rest operator, a ime
promenljive može biti bilo koje, ali
obično se takođe prihvaćeno da se nazove rest.
Hajde da pozovemo našu funkciju sa viškom
parametara i da vidimo šta ide
u parametre a i b, a šta -
u ostatak rest:
func(1, 2, 3, 4, 5);
function func(a, b, ...rest) {
console.log(a); // ispisuje 1
console.log(b); // ispisuje 2
console.log(rest); // ispisuje [3, 4, 5]
}
Ako nema viška parametara, onda će u promenljivu
rest biti upisan prazan niz:
func(1, 2);
function func(a, b, ...rest) {
console.log(a); // ispisuje 1
console.log(b); // ispisuje 2
console.log(rest); // ispisuje []
}
Funkcija uopšte može da nema parametara,
ali se u nju može dodati rest.
U tom slučaju funkcija se može pozvati
sa bilo kojim brojem parametara i svi oni
će upasti u niz rest:
function func(...rest) {
console.log(rest);
}