Сообщение от viktorina
|
функция вызывает себя же.
|
Поклеп!
Функция вызывает _другую_ функцию по тому же самому имени.
var rec_func = function(res) {
if(++res>3)
return res;
else
return rec_func(res);
};
var d = rec_func(1);
d;
/*
4
*/
Произошло вот что
Код:
|
rec_func // взяли текст, положили в память, начали выполнять
rec_func // взяли тот же текст, положили в другую память...
rec_func // взяли тот же текст, положили в другую память...
rec_func // взяли тот же текст, положили в другую память... |
ну и так далее пока стек не кончится или пока не наступит полное удовлетворение всех этих текстов в различых частях извилин браузера.
Никто там сам себя не вызывает. Идет тупое размножение с нуля. То есть с исходного текста применительно к интерпретатору и с исходных данных в компиляторе.