Javascript 带有google maps变量范围的Coffeescript
我正试图让谷歌地图与coffeescript配合使用。我的问题是coffeescript将javascript封装在函数{中,这意味着变量不构成全局范围 有没有办法让coffeescript强制变量进入全局范围 下面是我目前使用的简单代码的一个示例Javascript 带有google maps变量范围的Coffeescript,javascript,google-maps,coffeescript,Javascript,Google Maps,Coffeescript,我正试图让谷歌地图与coffeescript配合使用。我的问题是coffeescript将javascript封装在函数{中,这意味着变量不构成全局范围 有没有办法让coffeescript强制变量进入全局范围 下面是我目前使用的简单代码的一个示例 initialize = -> options = lat:-34.456 lng:23.456 zoom: 10 map = new google.maps.Map document.getEle
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)
一般来说,您希望避免使用全局变量
但是,如果您确实需要创建全局视图,可以通过在窗口上指定属性来实现:
这将创建一个名为foo的全局对象,它可以在没有窗口的情况下使用,因为所有全局变量实际上都是全局对象的属性,在浏览器上,全局对象是窗口对象,可以通过全局窗口进行访问。两个选项:
您可以附加到窗口,也可以附加到全局名称空间
window.initialize = ->
或者在浏览器中,对它的引用将是窗口,因此
@initialize = ->
或者创建自己的命名空间并附加到其中:
myApp ?= {}
myApp.intialize = ->
然后在jQuery就绪处理程序中的其他位置,如下图所示:
$->
google.maps.event.addDomListener(window, 'load', myApp.initialize)
为什么你需要它们是全局的?一般来说,全局是要避免的。我如何在不使用全局的情况下使用带有coffeescript的google地图?很抱歉,这是一个新问题。我编辑了你的初始化函数以获得一个主体。我想你是有意的,但如果不是,你可以重新编辑它。我如何在coffeescript中使用google地图作为替代方案?
$->
google.maps.event.addDomListener(window, 'load', myApp.initialize)