IIFE — янемедленно явызвал Fфункции Eвыражение — это способ выполнения работают сразу же, как только они созданы. Это хороший способ защитить область действия вашей функции и переменные внутри нее.
Это шаблон проектирования, также известный как Самоисполняемая анонимная функция.
(function () { // Write your js code here })();
Именованный IIFE с параметрами
(function showCurrentDate(date) { console.log('I am from IIFE', date) })(new Date());
Почему IIFE так полезен?
IIFE — лучший способ избежать:
* Загрязнения глобальных переменных
* Перезаписи глобальной области видимости
var name = 'Pradeep'; (function () { var name = 'chauhan'; console.log("Hello " + name); })(); console.log("Hello " + name); Output: Hello Chauhan Hello Pradeep
Другой вариант использования IIFE — его можно использовать в качестве замыкания.
const generateUniqueId = (function() { var counter = 0; return function() { ++counter; return `JSN_${counter}`; }; })(); console.log(generateUniqueId()); //JSON_1 console.log(generateUniqueId()); //JSON_2 console.log(generateUniqueId()); //JSON_3
Переменная счетчика недоступна извне IIFE. За исключением возвращаемой функции, никто не может прочитать или изменить переменную счетчика.
Примечание. В ES6 мы можем просто использовать фигурные скобки ({}) и использовать const или let, чтобы получить тот же эффект.
Спасибо за чтение и счастливого кодирования!