Во-первых, блок кода, который выглядит как (function(){})()
, является просто функцией, которая выполняется на месте. Давайте разберемся с этим немного.
1. (
2. function(){}
3. )
4. ()
Строка 2 - простая функция, заключенная в круглые скобки, которая сообщает среде выполнения, чтобы она возвращала функцию в родительскую область видимости; после ее возврата функция выполняется с использованием строки 4, возможно, чтение этих шагов поможет
1. function(){ .. }
2. (1)
3. 2()
Вы можете видеть, что 1 является объявлением, 2 возвращает функцию, а 3 просто выполняет функцию.
Пример того, как это будет использоваться.
(function(doc){
doc.location = '/';
})(document);//This is passed into the function above
Что касается других вопросов о плагинах:
Тип 1: На самом деле это не плагин, это объект, передаваемый как функция, поскольку плагины, как правило, являются функциями.
Тип 2: Это снова не плагин, поскольку он не расширяет объект $.fn
. Это просто расширение ядра jQuery, хотя результат тот же. Это если вы хотите добавить функции обхода, такие как toArray и т. Д.
Тип 3: Это лучший способ добавить плагин, расширенный прототип jQuery берет объект, содержащий имя и функцию вашего плагина, и добавляет его в библиотеку плагинов.