Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Javascript中访问函数中的变量?_Javascript_Ruby On Rails_Google Maps - Fatal编程技术网

如何在Javascript中访问函数中的变量?

如何在Javascript中访问函数中的变量?,javascript,ruby-on-rails,google-maps,Javascript,Ruby On Rails,Google Maps,单击按钮时,我需要通过将x指定给lat对象来更改贴图函数中的“中心”值。但是,我似乎不知道如何从alertFunction分配map.center.lat=43.138428。本质上,我是在问如何从另一个函数引用一个对象,在一个对象内部,在一个函数内部。我在铁轨内工作 <script> //function to update my center function alertFunction() { var x = document.getElementById("myInp

单击按钮时,我需要通过将x指定给lat对象来更改贴图函数中的“中心”值。但是,我似乎不知道如何从alertFunction分配map.center.lat=43.138428。本质上,我是在问如何从另一个函数引用一个对象,在一个对象内部,在一个函数内部。我在铁轨内工作

<script>
//function to update my center
function alertFunction() {
    var x = document.getElementById("myInput").value;
    initMap();
    **Wrong Code**
    **// map.center.lat = 43.138428;**
};

//function to start map
  function initMap() {
    map = new google.maps.Map(document.getElementById('map'), {
      zoom: 10,
      center:{lat: 41.138428, lng:-85.140239},
    });

//更新我的中心的函数
函数alertFunction(){
var x=document.getElementById(“myInput”).value;
initMap();
**错误代码**
**//map.center.lat=43.138428**
};
//函数启动映射
函数initMap(){
map=new google.maps.map(document.getElementById('map'){
缩放:10,
中心:{lat:41.138428,lng:-85.140239},
});

您的
initMap
函数应该返回一些内容,或者您可以使用参数设置
.lat

// the latter
function alertFunction() {
    var x = document.getElementById("myInput").value;
    initMap(43.138428);
    //      ^ pass latitude value
};

//function to start map
function initMap(latitude) {
//               ^ parameter
  var map = new google.maps.Map(document.getElementById('map'), {
      zoom: 10,
      center:{lat: latitude, lng:-85.140239},
      //           ^ from parameter
  });
}

// the former
function alertFunction() {
    var x = document.getElementById("myInput").value;
    var map = initMap();
    //        ^ initMap returns the map
    map.center.lat = 43.138428;
};

//function to start map
function initMap(latitude) {
 return new google.maps.Map(document.getElementById('map'), {
   zoom: 10,
   center:{lat: latitude, lng:-85.140239},
 });
}

//更新我的中心的函数
函数alertFunction(){
var x=document.getElementById(“myInput”).value;
var-map=initMap();
**错误代码**
**//map.center.lat=43.138428**
};
//函数启动映射
函数initMap(){
return map=new google.maps.map(document.getElementById('map'){
缩放:10,
中心:{lat:41.138428,lng:-85.140239},
});

重新运行map或者您必须使用全局变量。

在Google Maps文档中,他们显示了它-您需要在函数外部声明您的“map”变量,否则其他函数无法访问它

    <script>
  var map;
  function initMap() {
    map = new google.maps.Map(document.getElementById('map'), {
      center: {lat: -34.397, lng: 150.644},
      zoom: 8
    });
  }
</script>

var映射;
函数initMap(){
map=new google.maps.map(document.getElementById('map'){
中心:{纬度:-34.397,液化天然气:150.644},
缩放:8
});
}

这样,你的initMap()就改变了initMap函数之外的一个变量。

如果我理解得很好,你只需要在你的
initMap
函数中执行
返回map;
,并在调用它时得到结果。哦,伙计,我真是太感谢你指出这一点了。
    <script>
  var map;
  function initMap() {
    map = new google.maps.Map(document.getElementById('map'), {
      center: {lat: -34.397, lng: 150.644},
      zoom: 8
    });
  }
</script>