Javascript 在另一个函数中使用函数中的变量

Javascript 在另一个函数中使用函数中的变量,javascript,Javascript,我使用表单的selectedIndex为变量赋值 function getIndex() { var departureAirportIndex = document.getElementById("mySelect").selectedIndex; if (departureAirportIndex == 1) { var lat2 = 13.7563309; var lon2 = 100.5017651; } if (departureAirportIndex == 2){

我使用表单的selectedIndex为变量赋值

function getIndex() {
var departureAirportIndex = document.getElementById("mySelect").selectedIndex;        

if (departureAirportIndex == 1) {
var lat2 = 13.7563309;
var lon2 = 100.5017651;
}
if (departureAirportIndex == 2){
  var lat2 = 41.977226;
  var lon2 = -87.836723;
}
if (departureAirportIndex == 3){
  var lat2 = -37.663712;
  var lon2 = 144.844788;
}
赋值后,我想在计算距离的函数中使用这些值

function getDistance(lat1, lon1, lat2, lon2, unit) {
  var lat1 = 40.730610;
  var lon1 = -73.935242;
  var unit = "K";
                var radlat1 = Math.PI * lat1/180
                var radlat2 = Math.PI * lat2/180
                var theta = lon1-lon2
                var radtheta = Math.PI * theta/180
                var dist = Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta);
                dist = Math.acos(dist)
                dist = dist * 180/Math.PI
                dist = dist * 60 * 1.1515
                if (unit=="K") { dist = dist * 1.609344 }
                if (unit=="N") { dist = dist * 0.8684 }
                return dist.toFixed(2)

}

如何在第二个函数中使用lat2和lon2变量?在尝试了几个选项并阅读了有关范围界定的内容后,我无法让它发挥作用

您可以返回带有坐标的对象:

function getIndex() {
    var coordinates = {}
    var departureAirportIndex = document.getElementById("mySelect").selectedIndex;        

    if (departureAirportIndex == 1) {
        coordinates.lat = 13.7563309;
        coordinates.lon = 100.5017651;
    }
    if (departureAirportIndex == 2){
        coordinates.lat = 41.977226;
        coordinates.lon = -87.836723;
    }
    if (departureAirportIndex == 3){
        coordinates.lat = -37.663712;
        coordinates.lon = 144.844788;
    }

    return coordinates;
}

function getDistance(lat1, lon1, lat2, lon2, unit) {...}

var coordinates = getIndex();
getDistance(lat1, lon1, coordinates.lat, coordinates.lon, unit);

您可以返回具有以下坐标的对象:

function getIndex() {
    var coordinates = {}
    var departureAirportIndex = document.getElementById("mySelect").selectedIndex;        

    if (departureAirportIndex == 1) {
        coordinates.lat = 13.7563309;
        coordinates.lon = 100.5017651;
    }
    if (departureAirportIndex == 2){
        coordinates.lat = 41.977226;
        coordinates.lon = -87.836723;
    }
    if (departureAirportIndex == 3){
        coordinates.lat = -37.663712;
        coordinates.lon = 144.844788;
    }

    return coordinates;
}

function getDistance(lat1, lon1, lat2, lon2, unit) {...}

var coordinates = getIndex();
getDistance(lat1, lon1, coordinates.lat, coordinates.lon, unit);

你必须在第一个函数外声明它们,作为全局变量,或者作为第二个函数的参数传递它们。考虑到这一点,但几乎每个人都告诉我不要在全局范围内声明变量你必须在第一个函数外声明它们,作为全局变量或将它们作为第二个函数的参数传递。考虑到这一点,但几乎每个人都告诉我不要在全局范围内声明变量