Nøglen til fastsættelse af en "Out of Stack Space " fejl, også mere generelt kendt som en stak overflow fejl er først at forstå, hvad det betyder. Når en funktion kaldes i JavaScript er funktionen og dens variabler kopieres til hukommelse i , hvad der kaldes stakken. Hvis denne funktion kalder en anden funktion (eller samme funktion igen) , så barnet funktionen er også tilføjet til stakken. Hvis denne form for rekursive kald af funktioner overstiger grænsen for rekursion , der er defineret af browseren, så JavaScript vil returnere en stakoverløbsfejl . Instruktioner
1
Tjek for en uendelig looping funktion . Dette er den enkleste og mest almindelige årsag til en stak overflow fejl. Når en funktion kalder sig selv , bruge betingede udsagn for at sikre, at funktionen kan aldrig loop sig selv ind i et overløb fejl. Brug en tæller variabel eller en initialisering variabel eller kontrollere værdien af en variabel , der er manipuleret af den funktion at afgøre, hvorvidt det er blevet henrettet allerede .
2
Check for to eller flere funktioner , der kalder hver for at danne en uendelig løkke . Når én funktion kalder hinanden , være opmærksom på , at hvis den anden funktion ringer tilbage den første , kan det være muligt for koden til at sløjfe inden for disse funktioner. Dette kan endda ske med mere end to funktioner , og det kan være meget sværere at få øje end én looping funktion . Løsningen er den samme begge veje : Brug betingede udsagn for at beskytte koden mod looping uendeligt
3
Check for høje niveauer af rekursion , der er nødvendige for en funktion til at udføre . . Undertiden dybt rekursive funktioner er ikke en forglemmelse , men er en del af koden design. Hvis dette er tilfældet, så se, om funktionen kan opdeles i flere funktioner , der kører i serie , hver med et lavere niveau af rekursion .
4
Byg din egen stack. Gør dette ved at oprette et array , som skal forvalte de variabler Funktionen kræver at udføre , og derefter kalde funktionen i en løkke . Ved at lagre disse variabler , og derefter kalde funktionen sekventielt fra en løkke , kan du efterligne opførslen af en rekursiv funktion uden at påberåbe sig JavaScripts stak adfærd.