这是一个简单的问题,但我无法解决。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