我在使用函数回调方面遇到了一些麻烦,特别是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”。
答案 0 :(得分:2)
getPos
而不是立即调用该函数。PositionObj
。
PositionObj = {
lat: null,
lon: null,
}
答案 1 :(得分:1)
您的PositionObj
字面值不正确。初始属性应使用冒号设置:
{ lat: '', lon: '' }
答案 2 :(得分:1)
回调应告诉您获取位置信息的请求是异步的。这意味着getInfo()
不会立即设置值,因此以下行无法访问“新”值。
任何依赖于异步函数结果的东西都必须在回调本身内。