В первый раз, когда я услышал «iife» в моем классе Bootcamp, он сразу же напомнил мне о собаке моей сестры «Йеффи», что означает «симпатичный» на каком -то человеческом языке.
Так что же такое язык на языке JavaScript?
IIFE означает немедленно вызванное выражение функции. Это функция JavaScript, которая работает, как только она определена.
Обычно, когда мы создаем функцию, используя «Объявление функции» или «выражение функции», нам нужно вызвать функцию, чтобы использовать ее.
Function Declaration:
function myFunction(p1, p2) {
return p1 * p2;
}
alert(myFunction(4, 3));
//12
Function Expression:
let myFunction = function(p1, p2){
return p1 * p2;
}
alert(myFunction(4,3));
//12
Однако в IIFE функция завершена в скобку, что делает его выражением функции, за которым следует (), который сообщает компилятору Javasscript призывать или вызовать немедленно.
(function() {
let dName = "Yeffi";
alert(dName);
}
)();
//Yeffi
Так почему же мы используем IIFE?
В основном из -за конфиденциальности. Любые переменные, объявленные внутри IIFE, недоступны от внешнего мира.
(function() {
let dName = "Yeffi";
}
)();
console.log(dName);
// Uncaught ReferenceError: dName is not defined
Если вы попытаетесь получить доступ к переменной DNAME за пределами IIFE, вы получите сообщение об ошибке, как вы можете увидеть выше. Все переменные внутри IIFE остаются в рамках функции. Кроме того, он защищает глобальное пространство имен, не создавая именованную функцию. Когда именованная функция задерживается в глобальном пространстве имен, ее можно случайно вызвать снова. Однако, поскольку IIFE не именованная функция, ее нельзя вызвать. Это избежит любых потенциальных последствий безопасности. Поэтому многие библиотеки JavaScript используют эту технику в наши дни.
Спасибо за чтение!
Оригинал: “https://dev.to/gyi2521/what-is-iife-in-javascript-o81”