Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

139
Vistas
¿Cómo Call Stack of JS sabe dónde continuar?

Quiero saber cómo funciona la pila de llamadas después de que aparece una.

Por ejemplo:

 function inner() { console.log("what happens after inner() pops at Call Stack?"); } function outer() { inner(); console.log("how can Call Stack returned to this line?"); } outer();

Puedo decir eso en Call Stack:

  • al principio hemos empujado al outer() ,
 TOP of Call Stack ---------------- outer() // not executed. so lets begin at line 1! ---------------- BOTTOM of Call Stack
  • y ahora nos encontramos con inner() en la primera línea de outside() y lo empujamos a Call Stack,

entonces tenemos

 TOP of Call Stack ---------------- inner() // not executed yet! outer() // line 1 is on… ---------------- BOTTOM of Call Stack
  • y cuando se ejecuta console.log de inner() , inner() finaliza,
  • y la pila de llamadas aparece inner() ,

entonces tenemos

 TOP of Call Stack ---------------- outer() // line 1 is executed. let's continue with line 2! ---------------- BOTTOM of Call Stack

Pero, ¿CÓMO SABE LA PILA DE LLAMADAS DÓNDE CONTINUAR cuando regresan al outer() ? ¿Cómo puede outer() en la parte superior de la pila no reiniciarse en la primera línea? ¿Recuerdan algunas cosas como el puntero (que señala la línea de función externa)? pero en donde? ¿Qué pasa si la función recursiva sucede como 100 veces, entonces cuando tenemos 100 pilas, donde recuerdan todas las posiciones donde continuar?

Gracias por su ayuda.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

La pila de llamadas no solo almacena la función a la que regresar, sino también la ubicación particular dentro de esa función.

También almacena los valores de las variables locales dentro de la función. Esto es esencial para que las funciones recursivas funcionen correctamente.

Tenga en cuenta que todo esto es un detalle de implementación de la VM de JavaScript y podría implementarse de varias maneras. Por ejemplo, la ubicación de retorno podría ser una dirección de memoria después de compilar JIT el JavaScript en código de máquina. O la función podría estar en línea, sin dejar ningún marco de pila.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda