如何访问函数

时间:2017-11-09 10:00:20

标签: javascript jquery arrays function frontend

我想从函数外部访问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()
    });

});

2 个答案:

答案 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

访问