Cita:
Iniciado por herrerao Compañeros he revisado la liga que IsabelM me proporciono en su respuesta pero según yo el ámbito de mi variable esta correcta ya que esta definida fuera de la función
en tu primer código, se alertaba la variable antes de ejecutar la función, por lo que levantaba null. no se trataba de un problema con el scope, se trataba de aplicar lo que se expone en el último caso del articulo. aparte que invocabas la función desde la misma función, con lo que entraba en un bucle infinito. aparte de que también querías alertar la respuesta y no el parámetro que se le pasaba a la función cuando se era invocada, como pensé
examinando tu segundo código veo que has cambiado el procedimiento, pero también se alertará "null" puesto que el proceso es mas largo. de tal modo que mientras se hace la petición, se levanta la alerta
como no me gusta usar variables globales, mi opinión es almacenarla en un objeto global
Cita: // definimos el objeto
var obj = {};
// se añade la propiedad
obj.variable = valor;
// le añadimos a un método
obj.fnc = function() {
};
esto no funcionará si el caso que planteas es un caso real. en caso que tu objetivo sea alertar la respuesta, inserta el alert después de recibir la respuesta