Fehlermeldung
InternalError: too much recursion
Errortyp
Was ist falsch gelaufen?
Eine Methode, die sich selbst aufruft, wird rekursive Methode genannt. In manchen Aspekten ist eine Rekursion mit einer Schleife vergleichbar. Beide führen Quellcodeteile mehrmals aus, beide brauchen eine Abbruchbedingung um Endlosschleifen zu vermeinden. In den folgenden zwei Fällen sind ein endlich rekursiver und unendlich rekursiver Methodenaufruf beschrieben, die zeigen sollen, dass, wenn es zuviele oder unendliche rekursive Aufrufe gibt, Javascript diesen Fehler werfen wird.
Beispiele
Diese rekursive Methode wird bis zur Abbruchbedingung 10mal durchlaufen.
function schleife(x) { if (x >= 10) // "x >= 10" ist die Abbruchsbedingung return; // zu wiederholende Codezeilen schleife(x + 1); // rekursiver Methodenaufruf } schleife(0);
Wird die Abbruchsbedingung auf eine zu hohe Rekursionstiefe gesetzt, erzeugt das einen Fehler:
function boeseSchleife(x) { if (x >= 1000000000000) return; // zu wiederholende Codezeilen boeseSchleife(x + 1); } boeseSchleife(0); // InternalError: too much recursion