javascript - 获取函数外变量的值

标签 javascript scope global-variables

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

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

最佳答案

你没有得到你的值,因为你没有调用 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);

关于javascript - 获取函数外变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52331912/

相关文章:

具有模块级全局变量的 python 模块

javascript - Angular - 如何模拟 HTTP 请求?

javascript - IWebBrowser2 似乎没有执行 javascript

javascript - 在回调中丢失 this 的上下文

scope - 在短变量声明中重新声明来自不同 block 的变量

c - 全局变量在 C 中神奇地改变值

c - 全局变量链接行为

javascript - 使用 [FromForm] 属性时集合始终为 null

javascript - 如何防止在文本框中输入前导空格?

javascript - Object.defineProperty - 函数返回对象的作用域和使用?