如何访问函数外的数组元素
Posted
技术标签:
【中文标题】如何访问函数外的数组元素【英文标题】:How I can access to array element outside function 【发布时间】:2018-04-22 06:28:37 【问题描述】:我想从函数外部访问 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()
);
);
【问题讨论】:
【参考方案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()
);
);
【讨论】:
【参考方案2】:不确定为什么要为此传递内联函数,但也许有原因?
为了从函数外部访问距离和位置,您需要return 他们。如果您想返回多个变量(如您的情况),我可能会创建一个对象并返回该对象:
return pos: pos, distance: distance ;
在函数之外,您可以作为 object.pos / object.distance 访问它
【讨论】:
不知道为什么要为此传递一个内联函数 getCurrentPosition 需要一个以上是关于如何访问函数外的数组元素的主要内容,如果未能解决你的问题,请参考以下文章