Немедленно вызываемые функции, как следует из названия, — это функции, которые автоматически выполняют себя сразу после их объявления, без необходимости внешнего вызова.
Зачем использовать IIFE?
В Javascript все, что объявлено вне функции, добавляется в глобальную область видимости. Другими словами, новый контекст выполнения будет существовать только при вызове функции.
В приведенном ниже примере обратите внимание, что хотя переменная foo
была объявлена внутри цикла, ваше значение по-прежнему доступно снаружи, поскольку оно было присвоено глобальной области видимости window
.
Тем не менее, это произвольное загрязнение глобального контекста, несомненно, является одной из самых распространенных ошибок, совершаемых разработчиками javascript, но ее можно легко решить с помощью IIFE или объявления переменной let
, доступного в ECMAScript 6.
Аргументы
Как и любая другая функция, IIFE также может принимать аргументы. Наиболее распространенное использование, как показано в примере ниже, заключается в передаче переменной для локального использования с псевдонимом:
В этом случае глобальный экземпляр jQuery
передается через аргумент $
Вывод
Разве это не легко? :) Основная цель статьи заключалась в том, чтобы обобщить, как работает IIFE, поэтому я сделал свои описания максимально короткими. Если у вас есть дополнительные вопросы, пожалуйста, не стесняйтесь оставлять комментарии. Я был бы очень признателен, если бы ответил вам!
Всем спасибо!