0

関数 onSuccess は、常に GPS 受信機から座標を要求するため、無期限に実行されます。これには、一度だけ実行される createMap 関数が含まれています。これはどのように達成されますか?関数の変数のパラメータ値として渡されるため、関数の外に関数を作成することもできません。

watchID = navigator.geolocation.watchPosition(function(position) {onSuccess(position, arrMyLatLng);}, onError, options);  

function onSuccess(position, arrMyLatLng) 
{

var latitude , longitude ;     
latitude = position.coords.latitude ;
longitude = position.coords.longitude;
var myLatLng = new google.maps.LatLng(latitude, longitude);

createMap(myLatLng, arrMyLatLng);// This feature will run for an indefinite number of times. It is only necessary once. 
map.panTo(myLatLng) ;
}
4

3 に答える 3

1

一度だけ実行される関数:

function runOnce() {
    if (runOnce.done) {
         return;
    } else {
       // do my code ...

       runOnce.done = true;
    }
}

関数は JavaScript のオブジェクトであるため、プロパティを設定できます。

于 2013-04-09T20:06:15.093 に答える