繁体   English   中英

JavaScript对象属性未定义

[英]JavaScript object properties undefined

我正在尝试使用地理位置将当前的纬度和经度添加到以后可以在应用程序中使用的对象,如下所示:

    var loc = {
    get_latlong: function() {
        var self = this,
            update_loc = function(position) {
                self.latitude = position.coords.latitude;
                self.longitude = position.coords.longitude;
            };

        win.navigator.geolocation.getCurrentPosition(update_loc);
    }
}

当我运行loc.get_latlong()然后运行console.log(loc)我可以在控制台中看到对象,方法和两个属性。

但是,当我尝试console.log(loc.latitude)console.log(loc.longitude)它是未定义的。

这是怎么回事?

正如其他人提到的那样,您不能指望异步调用的结果会立即出现,您需要使用回调。 像这样:

var loc = {
    get_latlong: function (callback) {
        var self = this,
            update_loc = function (position) {
                self.latitude = position.coords.latitude;
                self.longitude = position.coords.longitude;
                callback(self);
            }

        win.navigator.geolocation.getCurrentPosition(update_loc);
    }
}

然后使用以下命令调用它:

loc.get_latlong(function(loc) {
    console.log(loc.latitude);
    console.log(loc.longitude);
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM