0
由於某種原因,當我對它做出警告時,我的「initialLocation」變量是未定義的,儘管我明確地將它分配給了getCurrentPosition的回調函數。 變量「initialLocation」被全局聲明爲btw。變量在顯式賦值後未定義在JavaScript中?
也許我不理解封閉的這個概念?
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);
}
你能複製並粘貼錯誤嗎? –
[爲什麼我的變量在函數內部修改後沒有改變? - 異步代碼引用](http://stackoverflow.com/questions/23667086/why-is-my-variable-unaltered-after-i-modify-it-inside-of-a-function-asynchron) – JJJ
地理定位是異步的....您正試圖在從位置服務返回之前提醒該值。 – charlietfl