我试图使变量 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
最佳答案
这是一个异步调用!使用这种方式:
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);
});
关于javascript - 函数中定义的全局 Javascript 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31209176/