2015-07-03 52 views
0

我想使變量lat和loc全局,但它們始終爲零。在函數中定義的全局Javascript變量

var lat=0; 
var loc=0; 

navigator.geolocation.getCurrentPosition(function(position) { 
    lat = position.coords.latitude; 
    loc = position.coords.longitude; 
}); 

alert(lat); // this eqals zero 
+2

函數內部的alert(lat)是什麼意思? –

+0

[如何更改函數內部全局變量的值]的可能重複(http://stackoverflow.com/questions/10872006/how-to-change-value-of-global-variable-inside-of-function) –

+0

@DavidRobinson Nopes。這不是這種情況! –

回答

2

這是一個異步調用!用這樣的方式:當你射擊alert(lat)

navigator.geolocation.getCurrentPosition(function(position) { 
    lat = position.coords.latitude; 
    loc = position.coords.longitude; 
    alert (lat); 
}); 

背景

,該getCurrentPosition()不會解僱,你的價值可能還沒有設置。如果你想做點什麼,可以把它放在那個函數裏面。

navigator.geolocation.getCurrentPosition(function(position) { 
    lat = position.coords.latitude; 
    loc = position.coords.longitude; 
    // Something like this. 
    calculate (lat, loc); 
});