Deo zbornika Napredni Javaskript

Višestruko vraćanje vrednosti

Svima je poznato da funkcije vraćaju vrednost, ali manje je poznato da funkcije mogu sadržati više return naredbi.

Često smo u situaciji da proveravamo više različitih scenarija - ako nije jedan, onda je drugi, ako nije drugi, onda je treći, i tako dalje. Na kraju, kada konačno odlučimo koja je vrednost validna, vraćamo je iz funkcije:

function chooseTax() {
  let tax
  if (isRed) tax = redTax
  else if (isGreen) tax = greenTax
  else if (isYellow) tax = yellowTax
  else tax = defaultTax
  return tax
}

Međutim, možemo se osloboditi privremene tax varijable, kao i else if grananja, tako što uvedemo vraćanje više vrednosti iz funkcije:

function chooseTax() {
  if (isRed) return redTax
  if (isGreen) return greenTax
  if (isYellow) return yellowTax
  return defaultTax
}

Funkcija nakon return naredbe prestaje da se izvršava, tako da else if i else ogranci nisu potrebni. Čim uslov bude zadovoljen, program izlazi iz funkcije, a ako ni jedan uslov nije zadovoljen, onda se vraća poslednja (podrazumevana) vrednost.

Kod složenije uslovne logike ova vrsta refaktorisanja može činiti značajno pojednostavljenje.