Ver Mensaje Individual
  #11 (permalink)  
Antiguo 13/06/2008, 06:04
Avatar de derkenuke
derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años, 2 meses
Puntos: 45
Respuesta: Darle valor a variables globales desde una función

Hola anac:

Como te dice caricatos (), su script funciona.


Tienes que cerciorarte de que llamas a inicializar_hora() antes que mostrar_hora(), sino es lógico y normal que las variables no tengan valor aún:

Código PHP:
var hora_global;
var 
minuto_global;
var 
segundo_global;

function 
inicializa_hora() {
    var 
fecha = new Date();
    
hora_global =fecha.getHours();
    
minuto_global fecha.getMinutes();
    
segundo_global fecha.getSeconds();
}


function 
mostrar_hora() {
    
alert("hora_global = "+hora_global+"\rminuto_global = "+minuto_global+"\rsegundo_global = "+segundo_global);
}

mostrar_hora();     // no tienen valor
inicializa_hora();     // inicializamos su valor
mostrar_hora();     // deben tener valor 
Da igual que tus archivos estén dentro de un documento html o uno js, pero sólo has de fijarte en eso: Haberles dado a tus variables valor antes de leerlas (esto incluye tener cuidado con cuándo se ejecutan tus funciones: si es cuando se está cargando la página, o en el window.onload o en algún evento disparado).


También por si acaso revisa que no tocas esas variables de nuevo en el script, no vaya a ser que las vuelvas a inicializar dentro de la función desde la que la llamas o... Este ejemplo devolverá las dos veces undefined:

Código PHP:
var yo;
function 
ini() {
    
yo "paco";
}
function 
lee() {
    var 
yo;
    
alert(yo);
}
lee();
ini();
lee(); 
Ya que dentro de lee() estamos declarando de nuevo como variable local la variable global yo, luego lo que alertamos es la variable local, a la global no tendremos acceso (únicamente con window.yo).



No se me ocurre qué más decirte, debería funcionar...
Saludos.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.