【问题标题】:Variable Undefined in Javascript after Explicit Assignment?显式赋值后Javascript中的变量未定义?
【发布时间】:2015-10-25 00:43:29
【问题描述】:

由于某种原因,当我对其发出警报时,我的“initialLocation”变量未定义,即使我在 getCurrentPosition 的回调函数中明确分配它。 变量“initialLocation”是全局声明的。

也许我不理解闭包的这个概念?

var initialLocation;

if (navigator.geolocation) {
    geoLocationError = true;
    navigator.geolocation.getCurrentPosition(function(position) {
        initialLocation = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
        getFood();
        }, geoError);
    alert(initialLocation);
} else {
    geoLocationError = false;
    noGeolocation(geoLocationError);
}

【问题讨论】:

标签: javascript variables closures


【解决方案1】:

navigator.geolocation.getCurrentPosition 是异步的,因此您的警报会在设置 initialLocation 之前触发。您应该在设置initialLocation 之后将警报放在回调中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-09
    • 2014-10-04
    • 2018-06-09
    • 2012-12-30
    • 2020-09-16
    • 1970-01-01
    • 1970-01-01
    • 2016-03-26
    相关资源
    最近更新 更多