繁体   English   中英

此javascript代码段是做什么的?

[英]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.Applicationwindow.Application =的文件。

要回答您的后续问题:

window.Application = Application

有效地将本地引用“应用程序”提升为全局符号。 浏览器中的window对象是全局作用域,因此全局变量是对window属性的引用。 因此,创建window的属性并将其设置为某个值(在这种情况下,可能是一个对象,也许是一个函数;我对Coffeescript不太了解)使该值在全局范围内可用。

它启动使用coffeescript构建的应用程序。 查看应用程序的初始化程序,并逐步调试它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM