Hola:
No creo que hayas entendido las respuestas... cuando un valor depende de un evento, en este caso una petición Ajax, pues hasta que no se produzca ese evento no cambia su valor, así que si consultas el valor antes de producirse el evento, tendrá su valor anterior... evidentemente será undefined, aunque pienso que si lo hubieses definido como Object() podría devolver el valor Object... nada más...
La respuesta al evento, evidentemente modifica el valor.
Saludos