Ver Mensaje Individual
  #10 (permalink)  
Antiguo 22/11/2013, 14:51
alexg88
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Mostrar variable fuera de una funcion

1º:

Ten en cuenta que las variables, funciones, ... que definas tiene un scope. El scope en javascript es a nivel de función.

Ejemplo:

Código Javascript:
Ver original
  1. var f_Scope2;
  2.  
  3. function Scope1()
  4. {    
  5.     f_Scope2 = function Scope2()
  6.     {
  7.         alert("Sólo puedo ser llamada desde la función Scope1, excepto que desde si soy referenciada por una closure");
  8.     }
  9. }
  10.  
  11. Scope1();
  12. f_Scope2();
  13. Scope2();

La función Scope2 sólo puede ser llamada dentro de la función Scope1, a no ser que tengas una referencia a la función por una variable que esté en un scope superior (como es el caso de guardar la función Scope2 en la variable f_Scope2). Esto último es lo que se llama closure (es algo que puede costar un poco entender, pero puedes investigar más en Internet).

2º:

Código Javascript:
Ver original
  1. $(document).ready(function testing2(){  
  2.  
  3. /*function testing2(){*/
  4.    
  5.  
  6.     FDW = "soy una variable dentro de una funcion, pero soy global";
  7.    
  8.  });
  9.  
  10. //}
  11.  
  12. //Esta función no es accesible porque está en un scope más interno, sólo podrías usarla dentro de la función ready (llamándola recursivamente)
  13. testing2();
  14.  
  15. //Da error puesto que no está declarada, dado que no se ha ejecutado todavía la función ready (se ejecuta cuando se carga la página (no tiene que haber cargado imágenes)). Esta variable sólo puede ser usada dentro de la función ready y funciones que se llamen desde esta.
  16. alert(FDW);

Ejemplo de lo último que digo:


Código Javascript:
Ver original
  1. $(document).ready(function testing2()
  2.                   {
  3.                       FDW = "soy una variable dentro de una funcion, pero soy global";
  4.                       //Ahora si puedo
  5.                       MostrarFDW();
  6.                      
  7.                   });
  8.  
  9. function MostrarFDW()
  10. {
  11.     alert(FDW);
  12. }
  13.  
  14. //Error al ejecutar, porque no está declarada la variable FDW
  15. //MostrarFDW();

Espero que te sirva de algo, pero es recomendable que mires algo por tu cuenta para aprender más sobre estos casos.