La clave para la fijación de un " espacio de pila " de error, de forma más general conocido como un error de desbordamiento de pila , es primero entender lo que significa. Cuando una función se llama en JavaScript , la función y sus variables se copian en la memoria de lo que se denomina la pila. Si la función que llama a otra función ( o la misma función otra vez) , a continuación, también se añade la función de niño a la pila . Si este tipo de llamadas recursivas de funciones excede el límite de recursividad que se define por el navegador y, a continuación JavaScript devolverá un error de desbordamiento de pila. Instrucciones
1
Ver para una función de bucle infinito . Esta es la causa más simple y común de un error de desbordamiento de pila . Siempre que una función se llama a sí mismo, utilizar instrucciones condicionales para garantizar que la función nunca puede bucle a sí mismo en un error de desbordamiento . Utilice una variable de contador o una variable de inicialización, o comprobar el valor de una variable que está manipulado por la función de determinar si es o no ha ejecutado ya .
2
Compruebe si dos o más funciones que llaman a cada otro para formar un bucle infinito . Cada vez que una función llama a otro , ser consciente de que si la segunda función devuelve la llamada a la primera , puede ser posible para el código de bucle dentro de esas funciones . Esto puede suceder incluso con más de dos funciones , y puede ser mucho más difícil de detectar que una función de bucle. La solución es la misma en ambos sentidos : Utilice sentencias condicionales para proteger el código contra el bucle infinitamente
3
revisar los niveles de recursividad que se requieren para una función a ejecutar. . A veces profundamente funciones recursivas no son un descuido, sino que forman parte del diseño del código. Si este es el caso, entonces ver si la función se puede dividir en varias funciones que se ejecutan en serie, cada uno con un menor nivel de recursividad.
4
Construye tu propia pila . Para ello, cree una matriz que se encargará de las variables que necesite la función de ejecutar y luego llamar a la función dentro de un bucle . Al almacenar las variables y luego llamar a la función secuencial de un bucle, puede imitar el comportamiento de una función recursiva sin depender de comportamiento de la pila de JavaScript .