Coffeescript与谷歌地图变量范围

时间:2014-11-01 13:17:31

标签: javascript google-maps coffeescript

我正在努力让谷歌地图与coffeescript合作。我遇到的问题是coffeescript在(function() {中包含javascript,这意味着变量不会成为全局范围。

有没有办法让coffeescript强制变量进入全局范围?

下面是我目前的简单代码示例。

initialize = ->
  options = 
      lat:-34.456
      lng:23.456
      zoom: 10
  map = new google.maps.Map document.getElementById('map-canvas'), options
  return

google.maps.event.addDomListener(window, 'load', initialize)

2 个答案:

答案 0 :(得分:0)

通常,您希望避免全局变种。

如果你绝对需要创建一个全局,你可以通过分配window上的一个属性来实现:

window.foo = "bar";

创建一个名为foo的全局变量(可以在没有window.的情况下使用),因为所有全局变量都是全局对象的属性,而在浏览器上全局对象是Window对象,可通过window全球访问。

答案 1 :(得分:0)

两个选项:

您可以附加到窗口或全局命名空间

 window.initialize = ->

或在浏览器中,对this的引用将是窗口,所以

@initialize = ->

或创建自己的命名空间并附加在那里:

myApp ?= {}
myApp.intialize = ->

然后是其他一些地方(可能在你的jQuery就绪处理程序中,如下所示):

$->
  google.maps.event.addDomListener(window, 'load', myApp.initialize)