【问题标题】:Get value of variable outside the function获取函数外变量的值
【发布时间】:2018-09-14 12:21:35
【问题描述】:

我试图在函数之外获取变量的值,但我做不到。请给出答案

<script>
    var lati;
    var lngi;   
    function getLocation() {
    if (navigator.geolocation) 
    {
      navigator.geolocation.getCurrentPosition(showPosition);
    } 
      initialize();
    }
    function showPosition(position) 
    {
      lati=position.coords.latitude;
      lngi=position.coords.longitude;  
    }
    alert(lati);
</script>

【问题讨论】:

    标签: javascript scope global-variables


    【解决方案1】:

    你没有得到你的价值,因为你没有调用getLocation() 函数。因为您没有调用它,所以它永远不会更改 lati 的值,然后显示它的默认值 undefined

    // ------------------------ FUNCTIONS TO SIMULATE
    const navigator = {
      geolocation: {
        getCurrentPosition: (func) => {
          func({
            coords: {
              latitude: '0.5125',
              longitude: '51.545',
            },
          });
        },
      },
    };
    
    function initialize() {
    
    }
    // ------------------------ FUNCTIONS TO SIMULATE
    
    
    var lati;
    var lngi;
    
    function getLocation() {
      if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(showPosition);
      }
    
      initialize();
    }
    
    function showPosition(position) {
      lati = position.coords.latitude;
      lngi = position.coords.longitude;
    }
    
    getLocation();
    
    alert(lati);

    【讨论】:

    • 伙计,您使用硬值如何获取用户位置。因为我的上一个代码做到了,但现在我做不到。
    • 我不明白你的意思。我的全部答案和硬性价值观只是在这里向您展示,如果您调用 getLocation() 函数,它将起作用
    【解决方案2】:

    在问题提供的片段中,showPosition() 从未被调用,因此无法修改变量lati。如果你在alert(lati) 之前调用showPosition(),它应该可以工作。

    【讨论】:

    • 我知道,但showPosistion() 是获取参数,我没有。
    • 我明白了,所以你需要在alert 之前调用getLocation()。然后它使用所需的参数调用showPosition(position)
    猜你喜欢
    • 2017-05-05
    • 2017-04-26
    • 1970-01-01
    • 1970-01-01
    • 2018-09-02
    • 2014-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多