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, oder wie in diese Fall unendliche rekursive Methodenaufrufe). Gibt es zuviel oder unendliche rekursive Aufrufe wird Javascript diesen Fehler werfen.
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 dies einen Fehler:
function boeseSchleife(x) { if (x >= 1000000000000) return; // zu wiederholende Codezeilen boeseSchleife(x + 1); } boeseSchleife(0); // InternalError: too much recursion