Порядок операций стека вызовов в Javascript - основополагающая концепция JS - PullRequest
0 голосов
/ 09 мая 2019

При запуске этого фрагмента кода механизм JS помещает три (), два (), один () в стек вызовов и в этом порядке. Мой вопрос: Есть ли строка "Я функция ОДНА !!!" вернуть после того, как one () вытолкнут из стека ИЛИ после того, как two () и three () вытолкнут из стека?

Я предполагаю, что "Я функционирую ОДИН !!!" возвращается сразу после извлечения из стека, а НЕ после того, как каждая функция извлекается из стека.

Может кто-нибудь поправить меня, если я ошибаюсь?

function one() {
  return "I'm function ONE!!!";
}

function two() {
  return one();
}

function three() {
  return two();
}

three();

1 Ответ

0 голосов
/ 09 мая 2019

Пройдя мой код с помощью отладчика в браузере, я пришел к выводу, что «я - функция ОДНА !!!» возвращается после того, как КАЖДАЯ функция (один, два и три) извлечена из стека вызовов.

Так что я мог ошибаться, что "Я функционирую ОДИН !!!" возвращается сразу после вызова one ().

...