JavaScript - Darle valor a variables globales desde una función

   
Vista:

Darle valor a variables globales desde una función

Publicado por Luna (7 intervenciones) el 11/06/2008 21:55:53
Buenas tardes,

Mi problema es el siguiente, quiero tener la hora a la que se ha entrado en la aplicación, para ello tengo 3 variables globales definidas al principio del archivo javascript:

var hora_global;
var minuto_global;
var segundo_global;

Las inicializo dentro de la primera función que se va a usar:
Código:

var fecha = new Date();
hora_global =fecha.getHours();
minuto_global = fecha.getMinutes();
segundo_global = fecha.getSeconds();

El problema es que cuando quiero usarlas en una función al final de la aplicación, el valor que tienen las variables globales es "undefined".

Si las variables la inicializo al principio del fichero cuando las declaro, entonces cuando al final de la aplicación quiero recuperar la hora en la que ha entrado, no me da la hora inicial, me da la hora actual, porque las variables al no estar dentro de ninguna función, pues cada vez que llamas a este fichero.js se actualiza...

¿Como puedo darle a unas variables globales un valor desde dentro de una función?

Gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Darle valor a variables globales desde una func

Publicado por Iván (2 intervenciones) el 12/06/2008 09:17:47
Prueba con esto:

Al principio del archivo javascript:

var hora_global = 0;
var minuto_global = 0;
var segundo_global = 0;

Dentro de la primera función que se va a usar:

var fecha = new Date();
hora_global =fecha.getHours();
minuto_global = fecha.getMinutes();
segundo_global = fecha.getSeconds();
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Darle valor a variables globales desde una func

Publicado por Luna (7 intervenciones) el 12/06/2008 11:14:38
Pues no funciona...

Si inicializo las variables a cero:
var hora_global = 0;
var minuto_global = 0;
var segundo_global = 0;
entonces aunque llame a la primera función y las inicialize con fecha.getHours(), en la función que uso al final me dice que las variables valen "0" ...

Y si al principio simplemente las declaro:
var hora_global ;
var minuto_global;
var segundo_global ;
entonces en las variables en la final valen "undefined" aunque las haya inicializado en un función al principio...

Hay alguna otra manera de crear variables globales?

Muchas gracias

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Darle valor a variables globales desde una func

Publicado por Iván (2 intervenciones) el 12/06/2008 11:32:50
Las variables globales son propiedades del objeto global, que en las páginas web es la ventana.

Si cambias de página, el objeto global cambia y por tanto las variables globales también (si vuelves a importar el fichero de scripts, las variables se re-inicializan).

No estaría mal saber el flujo que sigue la aplicación, desde que inicializas las variables hasta que las vuelves a leer al final.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Darle valor a variables globales desde una func

Publicado por Luna (7 intervenciones) el 12/06/2008 21:33:15
Vale, creo que se lo que quieres decir ... como llamo a este js desde páginas html distintas, los valores de las variables globales no se guardan... Porque es cierto que yo declaro las variables globales y desde un html llamo a una función del js para que inicialize las variables, y luego desde otro html llamo para que muestre el valor de esas variables...

Entonces debería de guardar esas variable de otra manera,no? porque así como yo lo estaba haciendo no se guardan...

Muchas gracias

Saludos
un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar