JavaScript:未定义的变量错误

时间:2015-06-22 14:32:45

标签: javascript

我试图将位置值存储在函数范围之外。 HTML5地理定位API是我需要的。这是我的代码:

var location={};
navigator.geolocation.getCurrentPosition(function maPosition(position) {

          location.latitude = position.coords.latitude;
          location.longitude = position.coords.longitude;
    });

console.log(position.latitude);
console.log(position.longitude);

当我运行此操作时,我收到错误variable undefined。这是因为它可能不在maPosition的范围内。由于我是JavaScript的新手,我想知道它的方法是什么。如何从{\ n}}声明的范围中访问position.coords的值?有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

position变量传递给getCurrentPosition中的回调函数。它只能在该功能中使用

尝试:

var location={};
navigator.geolocation.getCurrentPosition(function maPosition(position) {

      location.latitude = position.coords.latitude;
      location.longitude = position.coords.longitude;
      console.log(position.latitude);
      console.log(position.longitude);
      // or you could call another function and pass the value
      //someFunction(position):
});

对地理定位服务的调用是asyc,因此如果您想使用position的值,您需要在回调中执行此操作或将其传递给另一个函数。