Как сделать картинку в колбе

Это означает, что где-то в вашем коде вы вызываете функцию, которая, в свою очередь, вызывает другую функцию и т. д., пока вы не достигнете предела стека вызовов.

Это почти всегда из-за рекурсивной функции с базовым регистром, который не выполняется.

Просмотр стека

Рассмотрим этот код ...

(function a() {
    a();
})();

Вот стоп после несколько вызовов ...

Web Inspector [/g1]

Как вы можете видеть, стек вызовов растет до тех пор, пока он не достигнет предела: размер стека жесткого диска браузера или исчерпание памяти .

Чтобы исправить это, убедитесь, что ваша рекурсивная функция имеет базовый регистр, который может быть выполнен ...

(function a(x) {
    // The following condition 
    // is the base case.
    if ( ! x) {
        return;
    }
    a(--x);
})(10);
0
задан john_johnk 20 March 2019 в 16:31
поделиться