--- title: Call stack (Pilha de chamadas) slug: Glossary/Call_stack translation_of: Glossary/Call_stack original_slug: Glossario/Call_stack ---
A pilha de chamadas (call stack) é um mecanismo do interpretador de uma linguagem que organiza o funcionamento do script quando são chamadas muitas funções, qual função está sendo executada no momento, e quais serão chamadas dentro de alguma função, etc.
function saudacao() {
// [1] Algum código aqui
digaOi();
// [2] Algum código aqui
}
function digaOi() {
return "Olá!";
}
// Chamando a função `saudacao`
saudacao();
// [3] Algum código aqui
O código acima será executado desta forma pelo interpretador:
saudacao().saudacao() para a pilha de chamadas.
Pilha de chamadas:
- saudacao
saudacao().digaOi().digaOi() na pilha de chamadas.
Pilha de chamadas:
- saudacao
- digaOi
digaOi() até o final.digaOi() e continua a execução do resto da função saudacao().digaOi() da pilha de chamadas.
Pilha de chamadas:
- saudacao
saudacao() forem executadas, retorna para a linha onde a função foi invocada, e continua a execução do resto do código.saudacao() da Pilha de chamadas.
Pilha de chamadas:
EMPTY
Começamos com uma pilha de chamadas vazia, e sempre que chamamos uma função, ela é automaticamente adicionada à pilha de chamadas, e depois de todas as linhas serem executadas, é automaticamente removida da pilha de chamadas. No final, a pilha está vazia novamente.