由于某些原因,当我对其发出警报时,我的“initialLocation”变量是未定义的,即使我在getCurrentPosition的回调函数中明确指定它。 变量“initialLocation”全局声明为btw。
也许我不理解这种封闭概念?
var initialLocation;
if (navigator.geolocation) {
geoLocationError = true;
navigator.geolocation.getCurrentPosition(function(position) {
initialLocation = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
getFood();
}, geoError);
alert(initialLocation);
} else {
geoLocationError = false;
noGeolocation(geoLocationError);
}
答案 0 :(得分:1)
navigator.geolocation.getCurrentPosition
是异步的,因此在initialLocation
设置之前您的警报就会触发。您应该在设置initialLocation
之后将警报置于回调中。