检测变量是否在不同的函数中已更改

时间:2011-12-23 02:40:37

标签: javascript google-maps google-maps-api-3

我对javascript和谷歌地图都很陌生。我有一个输入,在提交时,会对值进行地理编码,我喜欢它:

  • 如果存在地图(已输入某些内容并已成功进行地理编码) 已经),然后重新定位
  • 否则以该点为中心创建地图。

我的代码有点像这样:

var map;

function getlatlong() { //this function gets the input value and then geocodes
    if(map.length){recentermap()} //if map exists, recenter map
    else{createmap()} //create map
}

function createmap(){ //this function creates the map (by editing `var map`)
    var map = new google.maps.Map();
}

我想我只是不明白js变量是如何工作的......我的问题是,如果我在第二个函数中更改var map,如何更改var map?

1 个答案:

答案 0 :(得分:2)

当你说:

function createmap(){ //this function creates the map (by editing `var map`)
    var map = new google.maps.Map();
}

您正在创建一个名为map的局部变量,该变量仅存在于createmap函数中。您想使用在外部作用域中声明的map变量,因此不应使用var关键字:

function createmap(){ //this function creates the map (by editing `var map`)
    map = new google.maps.Map();
}