Что делает этот фрагмент кода JavaScript? - PullRequest
0 голосов
/ 20 ноября 2011

Это короткий вопрос по учетной записи, который я не нашел правильный ответ с помощью Google.Хорошо, у меня есть этот проект Rails, который имеет много файлов JavaScript (на самом деле CoffeeScript), и кажется, что код, который запускает шары, это ...

index.html.haml

:javascript
  $(document).ready(function () {
    window.Application.init()
  });

Это все, что есть внутри, я понятия не имею, что делает строка: window.Application.init () ?Не могли бы вы, ребята, объяснить это мне?

Я предполагаю, что это очень важно, поскольку проект в основном представляет собой набор файлов coffescript и практически не обрабатывается на стороне сервера.

Спасибо зазаранее!

РЕДАКТИРОВАТЬ: (Я нашел код для класса приложения)

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

Ответы [ 3 ]

3 голосов
/ 20 ноября 2011

Erm ... он запускает функцию window.Application.init, которая, вероятно, была присоединена к window в каком-то другом файле coffeescript. Найдите файл, содержащий class window.Application или window.Application =.

2 голосов
/ 20 ноября 2011

Чтобы ответить на ваш следующий вопрос:

window.Application = Application

эффективно продвигает локальную ссылку «Приложение» на глобальный символ.Объект window в браузере является глобальной областью действия, а глобальные переменные являются ссылками на свойства window.Следовательно, создание свойства window и присвоение ему некоторого значения (объект, может быть, функция в данном случае; я мало знаю о Coffeescript) делает это значение доступным глобально.

0 голосов
/ 20 ноября 2011

Запускает приложение, созданное с использованием coffeescript.Посмотрите на инициализатор приложения и пошагово отлаживайте его.

...