Rekursio JavaScriptissä
Ohjelmoinnissa on käsite nimeltä
rekursio - se tarkoittaa tilannetta, jossa funktio kutsuu
itseään. Katsotaanpa esimerkkiä.
Tulostetaan rekursion avulla numerot 1
10:een asti:
let i = 1;
function func(){
console.log(i);
i++;
if (i <= 10){
func(); // tässä funktio kutsuu itseään
}
}
func();
Keskustellaan kuinka tämä koodi toimii.
Meillä on globaali muuttuja i
ja funktio func, jonka sisällä konsoliin
tulostetaan muuttujan i sisältö,
jonka jälkeen tehdään ++.
Jos muuttujamme i on pienempi tai
yhtä suuri kuin 10, funktiota kutsutaan uudelleen.
Koska muuttuja i on globaali,
jokaisessa funktion uudessa kutsussa siinä on
edellisellä kerralla asetettu muuttujan i arvo.
Käy niin, että funktio kutsuu itseään
kunnes i tulee suuremmaksi
kuin 10.
Huomioi, että meidän tapauksessamme funktiota
ei voi käynnistää ilman if - jos näin tehdään,
se johtaa äärettömään funktiokutsujen ketjuun.