Skratka IIFE znamená “Immediately Invoked Function Expression”, čo v preklade znamená „funkčný výraz okamžite volaný“. Ide o funkciu v JavaScripte, ktorá sa vytvorí a ihneď spustí.
Štruktúra IIFE:
Funkcia je uzavretá v zátvorkách a okamžite za ňou nasledujú ďalšie zátvorky, ktoré ju spustia.
(function() {
// kód, ktorý sa ihneď vykoná
console.log(“Hello from IIFE!”);
})();
Prečo používať IIFE:
1.Obmedzenie rozsahu premenných: Premenné deklarované vo vnútri IIFE sú lokálne pre túto funkciu a nezasahujú do globálneho rozsahu.
2.Okamžité vykonanie kódu: Ideálne na inicializačný kód, ktorý sa má vykonať len raz.
3.Zamedzenie konfliktov: Minimalizuje riziko konfliktu názvov premenných medzi rôznymi časťami kódu alebo knižnicami.
Príklad použitia IIFE:
1. Základný príklad:
(function() {
let message = “IIFE rocks!”;
console.log(message); // Výstup: “IIFE rocks!”
})();
2. S parametrami:
(function(name) {
console.log(`Hello, ${name}!`);
})(“Alice”);
Výstup: Hello, Alice!
3. Modulový vzor:
IIFE sa často používa na vytváranie modulov:
const myModule = (function() {
let privateVar = “This is private”;
return {
getPrivateVar: function() {
return privateVar;
}
};
})();
console.log(myModule.getPrivateVar()); // Výstup: “This is private”
Výhody IIFE:
•Jednoduché oddelenie kódu do samostatného priestoru.
•Znižuje riziko náhodného prepísania globálnych premenných.
•Okamžité vykonanie bez potreby dodatočného volania.
Nevýhody:
•Môže byť menej prehľadné pre začiatočníkov.
•S moderným ES6 a funkciami ako blokový rozsah (let, const) a moduly, použitie IIFE nie je tak časté.
IIFE je stále užitočným konceptom, najmä v prípade práce s klasickým JavaScriptom.