Показать сообщение отдельно
  #5 (permalink)  
Старый 26.10.2014, 20:48
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от 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 // взяли тот же текст, положили в другую память...
ну и так далее пока стек не кончится или пока не наступит полное удовлетворение всех этих текстов в различых частях извилин браузера.

Никто там сам себя не вызывает. Идет тупое размножение с нуля. То есть с исходного текста применительно к интерпретатору и с исходных данных в компиляторе.

Последний раз редактировалось kostyanet, 26.10.2014 в 20:51.
Ответить с цитированием