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

181
Vistas
Por qué console.log muestra la definición de la función cuando se llama con el nombre de la función

Aquí hay algo que ejecuté

 function c(){ return 2+3; } console.log(c); console.log(c());

Entiendo lo que sucede detrás de escena cuando se ejecuta console.log(c()) , pero cuando se trata de console.log(c) estoy un poco confundido.

Para console.log(c) obtengo el resultado:

 fc(){ return 2+3; }

¿Que está sucediendo aquí?

¿Almacena c toda la definición de la función o almacena la dirección de la definición de la función?

Si almacena toda la definición de la función, ¿en qué forma almacena? ¿Se almacena como cadena?

O si almacena la dirección, ¿cómo? Porque cuando el proceso se ejecuta, la memoria contiene las instrucciones de la máquina, no el programa JavaScript. Entonces, ¿de dónde vino?

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

0

Una función es como un libro, cada uno tiene un título único y se almacenan en algún lugar de su almacenamiento. Entonces, cuando diga "Dame la función con el nombre 'c', por favor", te dará la función completa, no solo el nombre. Al igual que cuando estás en una biblioteca y pides un libro específico, te van a dar el libro completo y no solo la portada con el título.

si solo desea imprimir el nombre, simplemente diga console.log(c.name)

Espero que esto haya ayudado :)

about 4 years ago · Juan Pablo Isaza Denunciar

0

Lo que se almacena en la memoria es el código fuente de la función. c es una referencia (dirección) a la ubicación en la memoria donde se almacena ese código fuente. Cuando el código se ejecuta, solo entonces se interpreta en instrucciones de máquina. Creo que incluso los motores como V8 todavía interpretan el código en tiempo de ejecución (aunque alguien con más conocimientos sobre ese tipo de motores puede corregirme aquí si me equivoco).

Como dijo Yousaf en su respuesta , llamar a cualquier objeto solo por su nombre automáticamente invoca el método toString() .

No sé si es posible en JavaScript acceder a la dirección exacta, como podría hacerlo en un lenguaje de nivel inferior como C.

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