我想从函数外部访问distance
和pos
元素。我怎么能这样做?
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()
});
});
答案 0 :(得分:1)
如果函数仅用作setter,则可以在函数外声明变量。
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()
});
});
答案 1 :(得分:0)
不确定为什么要为此传递内联函数,但也许有原因?
为了从函数外部访问距离和位置,您需要return它们。如果你想返回多个变量(就像你的情况一样),我可能会创建一个对象并返回该对象:
return { pos: pos, distance: distance };
在函数外部,您可以将其作为object.pos / object.distance
访问