Короткий ответ: Для того, чтобы предотвратить конфликты имен переменных. Это не всегда необходимо, но хорошая практика, чтобы создать коллизионный многоразовый код.
Длинный ответ: В javascript символ $ - это еще одна переменная. jQuery использует его, потому что это хорошая стенография вместо того, чтобы каждый раз вводить jQuery, но так же может быть и любой другой код (включая другие библиотеки).
Чтобы предотвратить конфликт с другими видами использования переменной в той же области (в данном случае $ в «глобальной» области), общий код, который должен быть завернут в функцию самозапускания с помощью «без конфликтов», переменные, переданные в качестве параметров функции. Затем создается новая область, в которой ваша переменная не будет мешать другим применениям этой переменной. Таким образом, вы можете передать полную именованную переменную &, используя ее с любым именем, которое вы хотите в анонимной функции.
Таким образом, при создании конфликтными повторно используемого кода это хорошая практика, чтобы использовать эту методику:
(function($) {
...
})(jQuery);
Вдоль этих линий вы увидите следующий формат:
(function($, window, undefined) {
...
})(jQuery, window);
В этом случае undefined
просто используется для удобочитаемости, указывающего, что никакие аргументы не передаются функции.
Вам не нужна глобальная переменная '' 'для представления' jQuery', у нее много дубликатов и ресурсов. –
Функции создают переменную область. Теперь у вашей функции есть область $. Вот и все. –
... но это необязательно, если ваш код помещен в обработчик '.ready()', так как вы можете просто выполнить jQuery (document) .ready (function ($) {...}); 'или более короткий 'jQuery (function ($) {...});' –