¿Cuál es el alcance de app.js en el nodo?

Variables definidas mediante el var La palabra clave en App.js en una aplicación de nodo no se coloca en el espacio de nombres global como si hubiera utilizado var en una página web (fuera del alcance de la función).

¿Cuál es exactamente el alcance de las variables definidas usando var en app.js?

preguntado el 27 de julio de 12 a las 15:07

3 Respuestas

El alcance superior es el módulo (es decir, el archivo). Las variables no pueden ir más allá de eso. Bueno, hay un truco, pero no lo recomiendo.

Respondido 27 Jul 12, 15:07

Nah, más solo curiosidad por saber cómo se enfocan las cosas. Entonces, ¿el archivo module/app.js de nivel superior se coloca esencialmente dentro de un cierre o algo así? - arcyqwerty

No es un cierre. yo lo llamaria solo. La única variable visible desde fuera del módulo es module.exports variable. Todas las demás variables son locales. No estoy seguro de cómo funciona el mecanismo subyacente en detalles (probablemente no implementado en JavaScript). También hay un global variable en cada módulo y cada vez que define variable en el ámbito principal se agrega a global. Por lo tanto global es como window en el navegador, excepto que no se comparte entre diferentes archivos. - monstruoso

¿Hay alguna forma de compartir el alcance principal con archivos que son require¿Estás dentro? - arcyqwerty

@arcyqwerty No sin trucos. ¿Pero hay una necesidad? Adición de variables a module.export son solo unas pocas líneas más, no es gran cosa. - monstruoso

solo tengo un monton de require x en app.js que no se propagan a mis módulos - arcyqwerty

Cada archivo es el alcance más alto que sería global

De hecho, puedes usar

process.env.USER_DEFINED_VAR

para variable accesible globalmente entre archivos

Respondido 27 Jul 12, 17:07

El alcance de una variable declarada usando var es local a la función.

Porque el único alcance de javascript es el alcance de la función.

Respondido 27 Jul 12, 15:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.