函数在控制台中显示“未定义”

Function shows `undefined` in console

本文关键字:未定义 显示 控制台 函数      更新时间:2023-09-26

我的代码:

    function geocodeAddress(address){
        var geocoder = new google.maps.Geocoder();
        geocoder.geocode(
            {
                'address':address   
            },
            function(results,status){
                if(status===google.maps.GeocoderStatus.OK){ 
                    var resultsObj = results[0].geometry;
                    var resultsLocationObj = resultsObj['location'];
                    var lat = resultsLocationObj['k'];
                    var lon = resultsLocationObj['D'];
                    var coordinatesObj = {
                        address : address,
                        latitude : lat,
                        longitude : lon
                    };
                    return coordinatesObj;
                }
            }
        );
    }
$(document).ready(function(){
function initialize(){
        $('#save-address').click(
            function saveAddress(){
                var addressText = $('#address').val();
                console.log(geocodeAddress(addressText));
            }
        );
}
    google.maps.event.addDomListener(window, 'load', initialize);
})

函数运行时,将有两件事打印到控制台:

  1. undefined at line XXXX ,其中XXXX是第二条线 console.log() .
  2. coordinatesObj的值(包含地址、纬度和经度的对象)

我希望第二个console.log()显示coordinatesObj的值。

我该怎么办?

如果没有看到您的标记,我们无法确定发生了什么,但从您显示的代码来看 - 我怀疑没有带有"地址"的 HTMLInputElement 元素。

$("#invalidId").val(); // returns `undefined`