Valor de retorno de la función anidada en Javascript [duplicado]
Esta pregunta ya tiene una respuesta aquí:
¿Cómo devuelvo una variable de la devolución de llamada del geocodificador JavaScript de Google Maps? 5 respuestasTengo una función que se configura de la siguiente manera
function mainFunction() {
function subFunction() {
var str = "foo";
return str;
}
}
var test = mainFunction();
alert(test);
Según mi lógica, esa alerta debería devolver 'foo', pero en su lugar, regresa indefinido. ¿Qué estoy haciendo mal?
ACTUALIZAR: Aquí está mi código real (es una función para la geocodificación inversa con la API de Google)
function reverseGeocode(latitude,longitude){
var address = "";
var country = "";
var countrycode = "";
var locality = "";
var geocoder = new GClientGeocoder();
var latlng = new GLatLng(latitude, longitude);
return geocoder.getLocations(latlng, function(addresses) {
address = addresses.Placemark[0].address;
country = addresses.Placemark[0].AddressDetails.Country.CountryName;
countrycode = addresses.Placemark[0].AddressDetails.Country.CountryNameCode;
locality = addresses.Placemark[0].AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName;
return country;
});
}