Глобальное пространство имен jQuery Limit - PullRequest
1 голос
/ 13 февраля 2012

В настоящее время все мои функции JavaScript объединены в одну функцию, поэтому я не загрязняю глобальное пространство имен.

, например

var App = function() {

    function a() {
    }

    return {};
}();

Теперь я хотел бы использовать jQuery, поэтому я хотел бы заключить это в следующее:

(function (window, document, $) {
   ...
}(window, document, jQuery));

Я попытался обернуть var App = function () {} в функцию jQuery, однако это вызывает проблемы, когда у меня есть свойства настройки AJAX в App. Есть идеи?

Ответы [ 2 ]

1 голос
/ 13 февраля 2012

Вместо использования отдельной анонимной функции вы можете просто передать window, document и jQuery непосредственно в приложение:

var App = function(window, document, $) {
    function a() {
    }
}(window, document, jQuery);

В качестве альтернативы , выможет объявить App в глобальном пространстве имен, но определить его в замыкании jQuery, например:

var App = null;

(function (window, document, $) {
    App = function() {
        function a() {
        }
    };
}(window, document, jQuery));

Обратите внимание, что в обоих этих примерах я удалил return {} и во второмЯ сделал функцию не вызывающей себя.Эта часть структуры выглядит как копирование-вставка и не нужна.

0 голосов
/ 13 февраля 2012

Как насчет этого:

var App = function(window, document, $) {

      function a() {
      }

      return {};

}(window, document, jQuery);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...