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

294
Vistas
¿Se considera global una variable exportada en Javascript?

Esto es algo que me he preguntado desde hace un tiempo. Digamos que tengo una aplicación express. Tengo esta exportación en su propio archivo:

 // my-var.js export const myVar = new Thing();

Luego tengo la creación del servidor donde accedo a esa variable:

 // index.js import { myVar } from './my-var'; import { myRoutes } from './my-routes'; function startServer() { myVar.doSomething(); /* 1 */ const app = express(); app.use('/', myRoutes); app.listen(port, () => {}); }

Finalmente, tengo mis rutas, que también usan esa variable:

 // my-routes.js import { Router } from 'express'; import { myVar } from './my-var'; const router = new Router(); router.get((req, res) => { myVar.doSomething(); /* 2 */ res.json({}); });

Entonces mi pregunta es: ¿.1 y .2 hacen referencia a la misma variable? ¿O ha sido instanciado dos veces? Creo que se crea una instancia cada vez que se importa el archivo, porque al importar un archivo se ejecuta el código en ese archivo. Entonces myVar = new Thing(); se ejecuta cada vez que se ejecuta ese archivo.

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

0

El archivo de script se ejecuta una vez y hay un solo resultado de ese archivo. Si se exporta algún objeto, todos los módulos se referirán a la misma instancia de ese objeto.

 const myVar = new Thing();

myVar se crea solo una vez y luego se exporta.

Puede intentar cambiar una propiedad en un módulo y verificar esa propiedad en otro para estar seguro.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Eso es lo que llamamos un diseño de paquete de patrón único , cuando lo haces así:

 export const myVar = new Thing()

Solo crea la instancia de Thing una vez, y luego, cada vez que la importa, está importando la misma instancia, porque ahora es una referencia.

Si desea obtener una nueva referencia cada vez que se importa myVar , cambie el código

de:

 export const myVar = new Thing()

A

 export const myVar = () => new Thing()

Y cuando lo importes, úsalo de la siguiente manera:

 import { myVar } from './my-var' const instance = myVar() // returns a new instance from Thing // use the instance here, ex: instance.color
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