Javascript对象方法返回undefined?

Bra*_*cal 2 javascript function undefined geolocation

这是一个快速的问题,我在一个对象中有以下方法,为什么它返回undefined?

var getGeoLocation = function() {
            if (typeof(navigator.geolocation) != 'undefined') {
                var test = navigator.geolocation.getCurrentPosition(function(position) {
                    var lat = position.coords.latitude;
                    var lng = position.coords.longitude;
                    return(new google.maps.LatLng(lat, lng));    
                });
            }
        }
var testFunction = function() {alert(getGeoLocation()); // returns undefined?}
Run Code Online (Sandbox Code Playgroud)

Jam*_*ice 7

这是因为navigator.geolocation.getCurrentPosition是异步的.该getGeoLocation功能通过匿名的回调函数返回之前getCurrentPosition已执行,而且由于getGeoLocation功能没有return声明,则返回undefined.

移动取决于navigator.geolocation.getCurrentPosition回调内部响应的代码.