2011-12-30 2 views
4

каждый раз, когда я вижу плагин JQuery, как это:

(function($) { 
    $.fn.example = function(options) { 
     return this.each(function() { 
      return 'Example!'; 
     }); 
    } 

})(jQuery); 

Я задаюсь вопросом о функции оберточной:

(function($) { 
    // ... 
})(jQuery); 

Является ли это необходимо? Если да, то почему? А если нет, каковы альтернативы/преимущества?

+8

Посмотрите на: http://docs.jquery.com/Plugins/Authoring –

+0

Возможный дубликат [Понимание скелета плагина jQuery] (http://stackoverflow.com/questions/2461049/understanding-a- скелет-of-jquery-plugin) –

ответ

4

Это сделано таким образом, чтобы плагин находился в своем собственном объеме и ничем не мешал.

Многие библиотеки используют $ в качестве ярлыка, поэтому мы передаем jQuery и назначаем его как $, чтобы убедиться, что он не мешает.

JQuery объясняет его использование в их документации: http://docs.jquery.com/Plugins/Authoring

+0

Там мы идем. Я ждал, пока вы ответите. Добавьте ссылку на свой ответ, и я дам вам +1. :) – ShadowScripter

2

Согласовано с комментарием Rocket. От http://docs.jquery.com/Plugins/Authoring:

Но подождите! Где мой замечательный знак доллара, который я знаю и люблю? Это все еще там, однако, чтобы убедиться, что ваш плагин не сталкивается с с другими библиотеками, которые могут использовать знак доллара, это хорошая практика, чтобы передать jQuery в функцию самозапускания (закрытие), которую сопоставляет ее с долларом чтобы он не мог быть перезаписан другой библиотекой в рамках ее выполнения.

Это также помогает respect the global namespace/предотвращает загрязнение глобального пространства имен. Если вы не попытаетесь - присвоив что-то window, например, любые созданные вами переменные будут храниться локально для вашей функции - и вам не нужно беспокоиться о конфликтах именования с каким-либо другим кодом - в других плагинах jQuery или в противном случае - в том числе использование $.

0

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

Смежные вопросы