javascript - 函数中定义的全局 Javascript 变量

标签 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 

最佳答案

这是一个异步调用!使用这种方式:

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/

相关文章:

javascript - 我需要粘性 header 来停止粘性超出某一点

javascript - 如何删除 JavaScript 中创建的元素?

javascript - 使用jquery处理503错误

javascript - 操纵 SVG 元素的可见性

javascript - 为什么 Javascript TypeDArray 不工作?

javascript - 工具提示是否有跨浏览器的方式?

javascript - 以字符串形式获取 console.log 的颜色输出

javascript - 在react-js中播放声音

javascript - 使用 Play! 将 json 对象属性注入(inject) anchor 的 href 属性中框架

javascript - 在 javascript 中使用正则表达式时的不同行为