【发布时间】:2015-10-25 00:43:29
【问题描述】:
由于某种原因,当我对其发出警报时,我的“initialLocation”变量未定义,即使我在 getCurrentPosition 的回调函数中明确分配它。 变量“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);
}
【问题讨论】:
-
您可以复制并粘贴问题中的错误吗?
-
地理位置是异步的......您正试图在该值从定位服务返回之前发出警报
-
另外,use
var. -
将
alert放入getCurrentPosition
标签: javascript variables closures