Они могут выглядеть одинаково, но они совершенно не связаны.
Это называется выражением немедленного вызова функции (IIFE). Они не являются специфичными для jQuery, но в этом случае это гарантирует, что в теле этой функции $
будет ссылаться на jQuery
, даже если что-то вне функции перезаписывает глобальную переменную $
чем-то другим. Это защитная практика для минимизации конфликтов с другими библиотеками.
Дополнительным преимуществом является то, что любые переменные, объявленные в этой функции, не будут добавлены в глобальную область. Даже без jQuery это обычная практика, используемая для помощи в модульности кода и предотвращении загрязнения глобальной области.
(function($) {
"use strict";
})(jQuery);
Это говорит jQuery о выполнении указанной функции, когда DOM "готов":
$(function() {
run_code();
});