Javascript 我在jquery中遇到了这个问题,这表明在我定义函数的同时没有定义函数

Javascript 我在jquery中遇到了这个问题,这表明在我定义函数的同时没有定义函数,javascript,jquery,Javascript,Jquery,我对jquery有这个问题。当我在另一个函数中调用它时,jquery中的一个函数返回“uncaughtreferenceerror:curLocZip未定义” 以下是函数定义: function curLocZip(){ curZipCode = ""; if (navigator.geolocation) { //Checks if browser supports geolocation navigator.geolocation.wa

我对jquery有这个问题。当我在另一个函数中调用它时,jquery中的一个函数返回“uncaughtreferenceerror:curLocZip未定义”

以下是函数定义:

function curLocZip(){
        curZipCode = "";
        if (navigator.geolocation) { //Checks if browser supports geolocation
            navigator.geolocation.watchPosition(function (position) { 
                var geocoder = new google.maps.Geocoder();

                var lat = position.coords.latitude;
                var lng = position.coords.longitude;
                var  latlng = new google.maps.LatLng(lat, lng)

                geocoder.geocode({'latLng': latlng}, function(results, status) {
                    if (status == google.maps.GeocoderStatus.OK) {
                        if (results[0]) {
                            for (i = 0; i < results[0].address_components.length; i++) {
                                if (results[0].address_components[i].types[0] == 'postal_code'){
                                    curZipCode = results[0].address_components[i].short_name;
                                    break;
                                }
                            }
                        }
                    } else {
                        console.log("Geocoder failed due to: " + status);
                    }
                });             
            });
        } else {
            alert("Geolocation is not supported by this browser.");
        }
}

我不知道为什么会出现错误,表明没有定义curLocZip()。

可能是在页面加载时定义了它,并在定义之前调用了它。您必须仅在加载页面后调用函数,因此您可能希望在
onLoad
回调中开始处理。

代码中的哪里定义了
curLocZip
?在哪里调用它?a)在哪里和什么时候定义函数b)在哪里和什么时候调用它?我在
$(document).ready(function(){…})中定义了curloczip()(fna curloczip),我用同样的方法调用它(声明)。通过在curloczip()中为全局变量设置一个默认值,然后调用该函数,我注意到该函数在调用时实际上返回一个值,只是在API处理完成之前返回。我现在正在寻找如何在调用函数返回之前完成API处理。在控制台中打印出来后,我注意到函数调用似乎工作得很好。问题似乎是函数在API处理完成之前返回。因此,当我删除GoogleMapsAPI调用中的一个变量并返回一个带有设置数据的变量时,函数调用似乎工作得很好。类似这样:
函数curloczip(){curZipCode=“38104”;返回curZipCode;}
curLocZip();