InternalError: too much recursion

Mensaje

InternalError: too much recursion

Tipo de error

驴Qu茅 ha ido mal?

Una funci贸n que se llama a s铆 misma es una funci贸n recursiva. Podemos decir que la recursi贸n es an谩loga a un bucle. Ambos ejecutan el mismo c贸digo varias veces y ambos requieren de una condici贸n de fin (para evitar un bucle infinito o recursi贸n infinita). Cuando hay recursi贸n infinita o mucha recursi贸n, JavaScript lanza este error.

Ejemplos

Esta funci贸n recursiva se ejecuta 10 veces, debido a la condici贸n de salida. 

function loop(x) {
  if (x >= 10) // "x >= 10" es la condici贸n de salida
    return;
  // hacer cosas
  loop(x + 1); // llamada recursiva
}
loop(0);

Si establecemos esta condici贸n para un valor muy alto, no funcionar谩:

function loop(x) {
  if (x >= 1000000000000)
    return;
  // hacer cosas
  loop(x + 1);
}
loop(0);

// InternalError: too much recursion (demasiada recursi贸n)

See also