Javascript 无法访问函数外的全局变量

标签 javascript google-maps

<分区>

我正在使用谷歌地图地理编码从地址获取纬度、经度值。这是我的代码,

var latd;
var lond;
geocoder.geocode({ 'address': address }, function (results, status) {

    if (status == google.maps.GeocoderStatus.OK) {
       console.log(place);
       var latd = results[0].geometry.location.lat();
       var lond = results[0].geometry.location.lng();
     }
    console.log(latd);
});
//console.log(latd);

在函数外访问变量latd时,它的值好像是undefined。上面的代码有什么问题?

更新 1:

    getlatlang(address);
    console.log(latd);//Not defined


function getlatlang(address)
{
    var geocoder = new google.maps.Geocoder();
    geocoder.geocode({ 'address': address }, function (results, status) {

        if (status == google.maps.GeocoderStatus.OK) {
            //console.log(place);
            latd = results[0].geometry.location.lat();
            lond = results[0].geometry.location.lng();
             return latd,lond;
             }

     });
}

最佳答案

如果您想在函数外部访问 lat,long 只需分配它们,而不是在函数内部创建它们。您可以阅读更多关于 JavaScript Scope 的信息

    var latd;
    var lond;
     geocoder.geocode({ 'address': address }, function (results, status) {

        if (status == google.maps.GeocoderStatus.OK) {
            console.log(place);
            latd = results[0].geometry.location.lat();
            lond = results[0].geometry.location.lng();
         }
      console.log(latd);
     });
     //console.log(latd);

关于Javascript 无法访问函数外的全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49796869/

相关文章:

javascript - 使用浅层渲染测试无状态 react 组件中的交互

javascript - 使用 ",' 和\正确包装 javascript 连接的 html

javascript -\B 在正则表达式中没有按预期工作

javascript - 在 Angular Material 中添加 ui-gmap-search-box

google-maps - 谷歌地图。如何在给定中心点坐标的情况下创建 LatLngBounds 矩形(正方形)

google-maps - 谷歌地图 API;如何在 map 上添加比例尺?

android - Android map 应用程序中形状(圆形、多边形)的信息窗口

javascript - 在 Asp.net 中使用 ajax 调用显示 google map

javascript - Rails 5 - 以 json 格式将数据从 Controller 发送到 javascript

javascript - Google Maps API v3 - API 脚本压缩/混淆