2017-11-09 3 views
2

distancepos要素を関数外にアクセスしたいと思います。これどうやってするの ?外部の配列要素にアクセスする方法

navigator.geolocation.getCurrentPosition(function(position) { 
    var pos = { 
     lat: position.coords.latitude, 
     lng: position.coords.longitude 
    }; 
    // console.log(getDistanceFromLatLonInKm(pos.lat, pos.lng, feature.position.lat(), feature.position.lng())); 
    distance.push({ 
     dis: getDistanceFromLatLonInKm(pos.lat, pos.lng, feature.position.lat(), feature.position.lng()), 
     lat: feature.position.lat(), 
     lng: feature.position.lng() 
    }); 

}); 

答えて

1

関数が単にセッターとして使用されている場合は、変数を関数の外に宣言することができます。

var pos, distance; 

    navigator.geolocation.getCurrentPosition(function(position) { 
     pos = { 
      lat: position.coords.latitude, 
      lng: position.coords.longitude 
     }; 

     distance.push({ 
      dis: getDistanceFromLatLonInKm(pos.lat, pos.lng, feature.position.lat(), feature.position.lng()), 
      lat: feature.position.lat(), 
      lng: feature.position.lng() 
     }); 

    }); 
0

なぜインライン関数を渡すのかわかりませんが、理由がありますか?

機能の外から距離と位置にアクセスするには、returnが必要です。あなたはobject.pos/object.distanceとしてそれにアクセスする機能の

return { pos: pos, distance: distance }; 

外:あなたは(あなたのケースでのように)複数の変数を返すようにしたい場合は、私はおそらく、オブジェクトをオブジェクトを作成して返します

+0

this_ [getCurrentPosition](https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/getCurrentPosition)が1を必要とするために、なぜあなたはインライン関数を渡していることを確認_Not – Satpal

関連する問題