在HTML页面的代码中,按钮“Try It”会导致Google地图出现在以用户位置为中心的窗口中。它通过调用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方法的信息(https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/getCurrentPosition),并且因为它是JavaScript,所以在回调中阅读是必需的 –
你的问题可以被看作是对“无点”风格的简单介绍。这里有更深入的例子。请享用! http://lucasmreis.github.io/blog/pointfree-javascript/ –