为什么从未声明过Google变量?

时间:2018-12-24 12:47:08

标签: javascript html google-maps

我正在尝试Google Java Maps API for Javascript,并遇到了“ Hello World”部分。

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

<script src="https://maps.googleapis.com/maps/api/js?key=YOURAPIKEY&callback=initMap"
async defer></script>

我注意到map = new google.maps.Map()使用变量google。如果我尝试仅使用NodeJS运行javascript代码,则会收到ReferenceError。

var map;

map = new google.maps.Map(document.getElementById('map'), {
  center: {lat: -34.397, lng: 150.644},
  zoom: 8
});

为什么使用浏览器在html中运行时没有ReferenceError: google is not defined发生?

1 个答案:

答案 0 :(得分:0)

因为它是在您用<script src="https://maps.googleapis...引用的脚本中声明的。

所引用脚本的第一行:

window.google = window.google || {};

脚本的其余部分将构建google对象中的所有对象:

google.maps = google.maps || {};
...
google.maps.Load = function(apiLoad) {