我正在尝试将地理位置存储在函数范围之外的一些变量中,js [重复]

Posted

技术标签:

【中文标题】我正在尝试将地理位置存储在函数范围之外的一些变量中,js [重复]【英文标题】:I'm trying to store the geolocation in some variables outside of the functions scope, js [duplicate] 【发布时间】:2018-04-05 23:54:07 【问题描述】:

我想存储地理位置,但是当我将纬度和经度存储在范围之外的变量中时,它们不会存储。有谁知道为什么会这样?我也尝试过使用未定义的变量,但也没有用。

这是我的代码:

$(document).ready(function()
var location = lat:'', lon:'';

function updateLocation()
    if(navigator.geolocation)
        navigator.geolocation.getCurrentPosition(function(position)
            location.lat = position.coords.latitude;
            location.lon = position.coords.longitude;
        );
    


updateLocation();

$("#data").html("lat: " + location.lat + " lon: " + location.lon);

);

【问题讨论】:

【参考方案1】:

您的代码存在 2 个大问题:

    您尝试在定义函数之前调用updateLocationupdateLocation 定义在 $(document).ready 内部,而调用发生在外部。请仅在文档准备好后执行所有操作。

    location 是为window.location 保留的名称。虽然可以使用该名称,但强烈建议更改该变量名称以避免混淆和错误行为。

【讨论】:

以上是关于我正在尝试将地理位置存储在函数范围之外的一些变量中,js [重复]的主要内容,如果未能解决你的问题,请参考以下文章

地理定位功能中的 JavaScript 变量范围

变量传递不起作用 - 值未定义

定义我自己的返回列表的范围函数

C语言extern关键字用法详解

为啥在嵌套函数之外声明一个计数器变量会使循环慢 5 倍?

如何在javascript中访问当前范围之外的变量?