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

318
Vistas
¿La variable const en la función javascript se inicializa cada vez que llama o solo una vez?

Me gustaría codificar algo como esto.

 function cokeDispencer(id) { const dict = {1:"sprite", 2:"pepcy", ...} // Some JSON. It might be bigger. return dict[id]; }

Por supuesto, dict[id] es una forma mucho más sencilla de hacer lo mismo, pero quiero poner el objeto dict dentro de la función para que ninguna otra función pueda acceder a este objeto dict. Lo que me pregunto es que el objeto dict se inicializa cada vez que llama. Como sé, la función escrita en C/C++ inicializa su variable local cada vez que llama, excepto la variable estática. Si es así, ¿hay alguna forma de inicializar la variable const solo una vez como la variable estática C/C++?

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

0

Sí, está creando un nuevo objeto dict cada vez que se ejecuta esa función.

En su lugar, puede crear un IIFE : una función que se ejecuta inmediatamente y se "cierra" sobre el objeto y puede devolver una función que accede a la propiedad deseada.

 const cokeDispencer = (() => { const dict = {1:"sprite", 2:"pepcy"} // Some JSON. It might be bigger. return id => dict[id]; })(); console.log(cokeDispencer(1));

Esto es casi lo mismo que

 const dict = {1:"sprite", 2:"pepcy"} // Some JSON. It might be bigger. const cokeDispencer = id => dict[id]; console.log(cokeDispencer(1));

excepto que el IIFE se asegura de que solo la función cokeDispener tenga acceso al objeto.

Si desea crear el objeto solo la primera vez que se llama a la función, y no antes, puede usar una técnica bastante similar para asignar una variable con alcance solo a la función si es necesario.

 const cokeDispencer = (() => { let dict; return (id) => { if (!dict) { dict = {1:"sprite", 2:"pepcy"} // Some JSON. It might be bigger. } return dict[id]; }; })(); console.log(cokeDispencer(1));

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