在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将使用返回值。

09-25 17:12