函数中定义的全局Javascript变量

时间:2015-07-03 14:29:16

标签: javascript

我正在尝试将变量lat和loc设为全局,但它们始终为零。

var lat=0;
var loc=0;

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

alert(lat); // this eqals zero 

1 个答案:

答案 0 :(得分:2)

这是异步电话!使用这种方式:

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

<强>背景

当您解雇alert(lat)时,getCurrentPosition()将无法解雇,您的值可能尚未设置。如果您想做某事,请将其置于该功能内部或在其中调用。

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