出于某种原因,即使我在getCurrentPosition的回调函数中显式分配了变量,但对它发出警报时我的“ initialLocation”变量却未定义。
全局声明变量“ initialLocation”。
也许我不了解这种封闭的概念?
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);
}
最佳答案
navigator.geolocation.getCurrentPosition
是异步的,因此在设置initialLocation
之前会触发警报。设置initialLocation
后,应将警报放置在回调中。