Der Schlüssel zur Festsetzung einer "Out of Stack Space "-Fehler, auch generell als Stack -Überlauf-Fehler bekannt ist , zuerst zu verstehen , was es bedeutet . Wenn eine Funktion in JavaScript aufgerufen wird, werden die Funktion und die Variablen in den Speicher , was heißt das Stack kopiert. Wenn diese Funktion eine andere ( oder die gleiche Funktion wieder) , dann wird das Kind Funktion ist auch mit dem Stapel hinzugefügt . Wenn diese Form der rekursiven Aufruf von Funktionen überschreitet den Grenzwert für Rekursion , die vom Browser definiert ist , dann wird JavaScript zurückkehren einen Stack-Überlauf -Fehler. Anleitung
1
Check für eine unendlich Looping Funktion . Dies ist die einfachste und häufigste Ursache für einen Stack-Überlauf -Fehler. Immer, wenn eine Funktion sich selbst aufruft , verwenden Sie bedingte Anweisungen , um sicherzustellen, dass die Funktion nie Schleife selbst in einen Überlauf-Fehler . Verwenden Sie einen Zähler-Variable oder eine Initialisierung Variable oder überprüfen Sie den Wert einer Variablen, die durch die Funktion , um zu bestimmen , ob es bereits ausgeführt worden ist manipuliert hat .
2
für zwei oder mehr Funktionen, die jedem Aufruf prüfen anderen in eine Endlosschleife zu bilden. Immer, wenn eine Funktion eine andere aufruft, sich bewusst sein , dass, wenn die zweite Funktion ruft die erste , kann es sein , damit der Code Schleife innerhalb dieser Funktionen möglich . Dies kann auch mit mehr als zwei Funktionen geschehen , und es kann sehr viel schwieriger, als einen Looping Funktion erkennen. Die Lösung ist die gleiche Art und Weise entweder : Verwenden Sie bedingte Anweisungen , um den Code zu schützen gegen unendlich looping
3
für hohe Rekursion , die für eine Funktion zur Ausführung erforderlich sind, prüfen . . Manchmal tief rekursive Funktionen sind kein Versehen , sondern sind Teil der Code -Design. Wenn dies der Fall ist , dann sehen, ob die Funktion in mehrere Funktionen, die in Serie laufen , die jeweils mit einem niedrigeren Niveau der Rekursion gebrochen werden.
4
Bauen Sie Ihren eigenen Stapel . Tun Sie dies , indem Sie ein Array, das die Variablen die Funktion erfordert zum Ausführen und dann den Aufruf der Funktion in einer Schleife verwalten. Durch die Speicherung dieser Variablen und rufen dann die Funktion nacheinander von einer Schleife , können Sie imitieren das Verhalten einer rekursiven Funktion , ohne sich auf den Stack Verhalten JavaScript .