我试图获得函数外的变量值,但我无法这样做。请给出答案
<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);
在问题中提供的剪切中,showPosition()
从未被调用,因此无法修改变量lati
。如果你在showPosition()
之前打电话给alert(lati)
,它应该可行。