這是一個簡單的問題,但我無法解決。javascript中的變量範圍
細節並不重要,但這是要點。我有一些像這樣的代碼:
var lat = 0;
var lon = 0;
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
lat = position.coords.latitude;
lon = position.coords.longitude;
});
}
我覺得它做的是:
- 設置緯度和經度,以0
- 如果瀏覽器地理位置,覆蓋這些變量與實際值
但是,在該塊的末尾,lat和lon仍然是0.我試過加入var
s,將lat和lon傳遞給函數等,但沒有成功...
我該如何做這項工作?
啊,答案很有意義。我知道這是異步的,但我不習慣用那種風格進行編程。那麼我如何專門做這項工作呢?在這個塊之後,我使用ajax來訪問一個API,並且不想重複這個代碼兩次,這取決於我們是否知道位置。 – 2010-06-03 12:19:25
將呼叫置於其他API *內*從'getCurrentPosition'回調 – Pointy 2010-06-03 12:38:34