获取函数外部的变量值

问题描述 投票:1回答:2

我试图获得函数外的变量值,但我无法这样做。请给出答案

<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
2个回答
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);

0
投票

在问题中提供的剪切中,showPosition()从未被调用,因此无法修改变量lati。如果你在showPosition()之前打电话给alert(lati),它应该可行。

© www.soinside.com 2019 - 2024. All rights reserved.