Что такое преимущество использования (функция () {…}) () в JavaScript

Я заметил в JQuery, что следующая структура кода используется

(function(){var l=this,g,y=l.jQuery,p=l.$,...})()

Который, кажется, создает функцию и называет ее.

Каково преимущество проявления этого подхода по сравнению с наличием содержания встроенной функции?

9
задан Jimmy Cuadra 10 February 2010 в 07:46
поделиться

5 ответов

Создает закрытие для предотвращения конфликтов с другими частями кода. См. Это:

Особенно удобно, если у вас есть другая библиотека, использующая метод $ () , и вы должны сохранить возможность также использовать это с jQuery. Затем вы можете создать закрытие, например:

(function($) {
    // $() is available here
})(jQuery);
7
ответ дан 4 December 2019 в 19:33
поделиться

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

4
ответ дан 4 December 2019 в 19:33
поделиться

Это похоже на:

var foo = function(){var l=this,g,y=l.jQuery,p=l.$,...};
foo();

Но более простой и не требует глобальной переменной.

0
ответ дан 4 December 2019 в 19:33
поделиться

Это позволяет иметь локальные переменные и операции внутри функции, вместо того, чтобы преобразовывать их в глобальные.

0
ответ дан 4 December 2019 в 19:33
поделиться

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

Вы можете прочитать об этом здесь

1
ответ дан 4 December 2019 в 19:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: