разница между функцией ($) и $ (function ()) - PullRequest
1 голос
/ 24 октября 2019

В чем разница между function($) и $(function())?

Является ли этот код избыточным?

(function($) {
    "use strict"; 

  $(function() {
      run_code();
  });

})(jQuery); 

Обе ли они готовы к работе с документами?

1 Ответ

3 голосов
/ 24 октября 2019

Они могут выглядеть одинаково, но они совершенно не связаны.

Это называется выражением немедленного вызова функции (IIFE). Они не являются специфичными для jQuery, но в этом случае это гарантирует, что в теле этой функции $ будет ссылаться на jQuery, даже если что-то вне функции перезаписывает глобальную переменную $ чем-то другим. Это защитная практика для минимизации конфликтов с другими библиотеками.

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

(function($) {
    "use strict"; 


})(jQuery); 

Это говорит jQuery о выполнении указанной функции, когда DOM "готов":

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