返回值回调函数?

时间:2013-06-22 13:15:18

标签: javascript html5

我在使用函数回调方面遇到了一些麻烦,特别是HTML5地理定位API。我也是Js的新手。功能:

function getInfo()
{
    navigator.geolocation.getCurrentPosition(getPos);
}

获取一个函数的回调参数,该函数获取传递给它的位置。

function getPos(position)
{
PositionObj.lat = position.coords.latitude;
PositionObj.lon = position.coords.longitude;
}

我创建了一个“位置”对象来存储坐标,但我无法返回它们。

var PositionObj = 
{
lat:null,
lon:null,
returnLat: function()
             {
             return this.lat;
             },
returnLon: function()
             {
             return this.lon;
             }
};


function printStuff()
{
getInfo();
console.log(PositionObj.returnLat());
}

编辑:修复了语法错误。当我调用printStuff()时,我仍然得到“null”。

3 个答案:

答案 0 :(得分:2)

  • 要传递回调,请仅使用getPos而不是立即调用该函数。
  • 使用正确的语法在PositionObj
  • 中声明属性

PositionObj = {
    lat: null,
    lon: null,
}

答案 1 :(得分:1)

您的PositionObj字面值不正确。初始属性应使用冒号设置:

{ lat: '', lon: '' }

答案 2 :(得分:1)

回调应告诉您获取位置信息的请求是异步的。这意味着getInfo()不会立即设置值,因此以下行无法访问“新”值。

任何依赖于异步函数结果的东西都必须在回调本身内。