OpenLayers3 的全局 JavaScript 变量

Global JavaScript variable with OpenLayers3

为什么会这样?

function addMap() {
  var view = new ol.View({
    center: ol.proj.fromLonLat([29.5646, 44.1575]),
    zoom: 4
  });
  var map = new ol.Map({
    target: 'map',
    layers: [
      new ol.layer.Tile({
        source: new ol.source.OSM()
      })
    ],
    view: view
  });
}

...这不是吗?

var view = new ol.View({
  center: ol.proj.fromLonLat([29.5646, 44.1575]),
  zoom: 4
});

function addMap() {
  var map = new ol.Map({
    target: 'map',
    layers: [
      new ol.layer.Tile({
        source: new ol.source.OSM()
      })
    ],
    view: view
  });
}

我想如果变量在函数外,它就是全局变量,可以从所有其他地方使用。

问题是您在文档加载之前 运行 javascript 在文档上,所以

  1. 将您的 javascript 代码移至正文末尾或
  2. 你可以在

    中完成这一切
    $(document).ready(function() {
    var view = new ol.View({
    center: ol.proj.fromLonLat([29.5646, 44.1575]),
    zoom: 4
    }