Thanks to visit codestin.com
Credit goes to developer.mozilla.org

This page was translated from English by the community. Learn more and join the MDN Web Docs community.

View in English Always switch to English

InternalError: too much recursion

Сообщение

InternalError: too much recursion

Тип ошибки

InternalError.

Что пошло не так?

Функция, вызывающая сама себя, называется рекурсивной функцией. В некотором смысле рекурсия аналогична циклу. Оба выполняют один и тот же код несколько раз, и оба требуют условия (чтобы избежать бесконечного цикла или, вернее, бесконечной рекурсии в этом случае). Когда функция вызывается рекурсивно слишком много раз или бесконечно, JavaScript выдаёт эту ошибку.

Примеры

Функция выполняется рекурсивно 10 раз, в соответствии с условием выхода:

js
function loop(x) {
  if (x >= 10) {
    // "x >= 10" это условие выхода
    return;
  }
  // do stuff
  loop(x + 1); // рекурсивный вызов
}
loop(0);

В условии установлено слишком большое значение, не будет работать:

js
function loop(x) {
  if (x >= 1000000000000) return;
  // do stuff
  loop(x + 1);
}
loop(0);

// InternalError: too much recursion

Смотрите также