[英]What does this javascript code snippet do?
这是一个简短的问题,因为我没有使用Google找到正确的答案。 好的,我有一个Rails项目,其中包含很多JavaScript文件(实际上是CoffeeScript),而且看来,推动这一发展的代码就是这个……
index.html.haml
:javascript
$(document).ready(function () {
window.Application.init()
});
这就是里面的全部,我不知道这行是什么: window.Application.init()做什么? 你们能给我解释一下吗?
我认为这非常重要,因为该项目主要是一堆文件,几乎没有任何服务器端处理。
提前致谢!
编辑:(我找到了应用程序类的代码)
class Application
# Creates the map by using the geolocation center
# Returns a deferred promise with the bounds
setup = (position) ->
deferred = new $.Deferred()
Ext.setup
glossOnIcon: false
onReady: ->
Application.mapPanel = new MapPanel(position, deferred)
Application.loading = new Ext.LoadMask( Ext.getBody(), { msg: "Loading..." } )
deferred.promise()
# Handles the geolocation error.
@onFail = ->
Ext.setup
onReady: ->
new Ext.Panel
fullscreen: true,
dockedItems: [],
items: []
Ext.Msg.confirm "Position Unavailable",
"Can not confirm your location. Would you like to go to the instructions page?",
(button) ->
document.location = if button == "no" then "/posts" else "/instructions"
@init = ->
Geolocation.onStart = (position) ->
$.when(setup(position)).pipe(Post.latest).then (data) ->
Application.mapPanel.paintPosts data
Geolocation.onUserRejected = @onFail
Geolocation.init()
window.Application = Application
嗯...它运行函数window.Application.init
,该函数可能已附加到其他coffeescript文件的window
中。 查找包含class window.Application
或window.Application =
的文件。
要回答您的后续问题:
window.Application = Application
有效地将本地引用“应用程序”提升为全局符号。 浏览器中的window
对象是全局作用域,因此全局变量是对window
属性的引用。 因此,创建window
的属性并将其设置为某个值(在这种情况下,可能是一个对象,也许是一个函数;我对Coffeescript不太了解)使该值在全局范围内可用。
它启动使用coffeescript构建的应用程序。 查看应用程序的初始化程序,并逐步调试它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.