elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  [SOLUCIONADO] Ayuda: Node.js ambito de variables
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [SOLUCIONADO] Ayuda: Node.js ambito de variables  (Leído 3,762 veces)
patilanz


Desconectado Desconectado

Mensajes: 481

555-555-0199@example.com


Ver Perfil WWW
[SOLUCIONADO] Ayuda: Node.js ambito de variables
« en: 24 Noviembre 2017, 02:21 am »

Si tengo un archivo a.js:

Código
  1. var variableImportante = {...};
  2.  
  3. var b = require('b.js');
  4. b.funct(23);
  5.  

y otro b.js
Código
  1. module.exports = {
  2.    funct: (arg) => {//como acceder a variableImportante desde aqui sin pasarla como argumento a la funcion funct}
  3. }


Un saludo


« Última modificación: 25 Noviembre 2017, 21:30 pm por patilanz » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Ayuda: Node.js ambito de variables
« Respuesta #1 en: 24 Noviembre 2017, 17:05 pm »

El modulo "b.js" no debería depender de una variable de otro archivo salvo que lo importe.

La mejor opción, es pasar el valor a mano. Puedes exportar en "b.js" una función "setVar()", y llamarla desde "a.js". Solo la llamarías una vez, es la ventaja, no tendrías que pasársela a cada función.


En línea

patilanz


Desconectado Desconectado

Mensajes: 481

555-555-0199@example.com


Ver Perfil WWW
Re: Ayuda: Node.js ambito de variables
« Respuesta #2 en: 25 Noviembre 2017, 14:37 pm »

El modulo "b.js" no debería depender de una variable de otro archivo salvo que lo importe.

La mejor opción, es pasar el valor a mano. Puedes exportar en "b.js" una función "setVar()", y llamarla desde "a.js". Solo la llamarías una vez, es la ventaja, no tendrías que pasársela a cada función.

Esto podria ser una solucion pero si son varias variables no me gustaria pasar todos como argumentos. Tambien se pueden poner todos en un objeto y pasarlo pero no es lo que busco.

Y si en variableImportante tengo un objeto que contiene datos de un objeto binario muy grande que no es conveniente copiar, como puedo pasarlo como puntero?
« Última modificación: 25 Noviembre 2017, 14:41 pm por patilanz » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Ayuda: Node.js ambito de variables
« Respuesta #3 en: 25 Noviembre 2017, 21:10 pm »

En javascript las variables no se copian. Tampoco se pasan por referencia. Es como pasar una referencia al objeto que contiene. Con lo cual, los objetos grandes no tendrán problema.

Y bueno. Lo de que un módulo de Node tenga acceso a una variable de otro código que va a importar ese módulo... Es casi una referencia circular, que es mejor evitar.
En línea

patilanz


Desconectado Desconectado

Mensajes: 481

555-555-0199@example.com


Ver Perfil WWW
Re: Ayuda: Node.js ambito de variables
« Respuesta #4 en: 25 Noviembre 2017, 21:29 pm »

En javascript las variables no se copian. Tampoco se pasan por referencia. Es como pasar una referencia al objeto que contiene. Con lo cual, los objetos grandes no tendrán problema.

Y bueno. Lo de que un módulo de Node tenga acceso a una variable de otro código que va a importar ese módulo... Es casi una referencia circular, que es mejor evitar.

Lo haré con setVar gracias :D
En línea

Luis Leon B

Desconectado Desconectado

Mensajes: 26


Ver Perfil
Re: [SOLUCIONADO] Ayuda: Node.js ambito de variables
« Respuesta #5 en: 29 Noviembre 2017, 05:32 am »

Puedes importar la variable de a.js en b.js como una clase, si es algo de lo que buscas:

Código:
class VariableImp { 
constructor() {
this.variableImportante  = { };
}
}

export default VariableImp;
y en b.js
Código:
a = require('./a.js');
variableImp = new a.VariableImp() // Si usas babel puedes hacer import a, {VariableImp} from './a.js';

module.exports = {
funct:(arg) => {variableImp.variableImportante /* is usas babel seria solo VariableImp */}
}
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Solucionado] Duda con variables « 1 2 »
PHP
xassiz_ 14 5,018 Último mensaje 16 Mayo 2010, 14:00 pm
por xassiz_
No entiendo el ambito de las variables en javascript
Desarrollo Web
Aikanáro Anário 2 2,545 Último mensaje 8 Junio 2012, 20:32 pm
por Aikanáro Anário
Duda sobre el ambito de las variables automaticas
Programación C/C++
Caster 5 2,746 Último mensaje 6 Octubre 2012, 18:00 pm
por rir3760
[SOLUCIONADO] Una ayuda sobre las variables dinámicas
.NET (C#, VB.NET, ASP)
Eleкtro 0 1,677 Último mensaje 6 Enero 2013, 00:46 am
por Eleкtro
SOLUCIONADO - Comparar 3 variables
PHP
WiseHidden 6 5,928 Último mensaje 26 Septiembre 2013, 17:21 pm
por 1mpuls0
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines