HTMLページのコードでは、「試してください」ボタンをクリックすると、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()に渡されていないときに、パラメータ "position"はどのようにアクセスされますか?誰かが理由を説明できるなら、私はとても感謝しています。
これはコールバック関数です。メソッドgetCurrentPositionの詳細はこちら(https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/getCurrentPosition)、それはJavaScriptなので、コールバックを読むことは不可欠です –
あなたの質問は、「ポイントフリー」スタイルへの軽い導入と見なすことができます。以下に、より詳細な例を示します。楽しい! http://lucasmreis.github.io/blog/pointfree-javascript/ –