JavaScript/Funktion/Rekursive Funktionen

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche

Wenn man ein bisschen fortgeschrittener ist, kann man durch sog. rekursive Funktionen viel Zeit und Nerven sparen. Was aber sind diese rekursiven Funktionen? Ganz einfach, sie rufen sich selbst auf:

Beispiel
function str_repeat(str, num) {
   return (num > 0) ? str + str_repeat(str, num - 1) : "";
}
alert(str_repeat("abc", 5));//abcabcabcabcabc

Ja, ganz richtig, nur eine Zeile. Wie gesagt, rekursive Funktionen können praktisch sein. Beim obigen Beispiel verfährt der Parser wie folgt:

  1. alert(str_repeat("abc", 5));
  2. alert("abc" + str_repeat("abc", 4));
  3. alert("abc" + "abc" + str_repeat("abc", 3));
  4. alert("abc" + "abc" + "abc" + str_repeat("abc", 2));
  5. alert("abc" + "abc" + "abc" + "abc" + str_repeat("abc", 1));
  6. alert("abc" + "abc" + "abc" + "abc" + "abc" + str_repeat("abc", 0));
  7. alert("abc" + "abc" + "abc" + "abc" + "abc" + "");
  8. alert("abcabcabcabcabc");