在HTML页面的代码中,“尝试”按钮会导致Google地图以用户位置为中心显示在窗口中。它通过调用getLocation()来实现,而getLocation()依次调用showPosition()。但是,该行中没有传递任何参数
navigator.geolocation.getCurrentPosition(showPosition);
并且showPosition定义为接受参数。您在下面看到的代码表明了这一点。在进行实验时,我通过从定义中删除参数来修改了代码,但是地图不再出现。下面的代码是显示地图的版本。
<button onclick="getLocation()">Try It</button>
<script>
var x = document.getElementById("demo");
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
function showPosition(position) {
var mapProp= {
center:new google.maps.LatLng(position.coords.latitude, position.coords.longitude),
zoom:13,
};
var map=new google.maps.Map(document.getElementById("googleMap"),mapProp);
}
</script>
看到这个,我很好奇。如果不传递参数“位置”到showPosition()中,该如何访问?如果有人能解释原因,我将不胜感激。
最佳答案
getCurrentPosition
正在使用showPosition
回调函数。这意味着它将调用它并提供position
作为第一个参数。如果要为showPosition
提供参数,则getCurrentPosition
将使用返回值。