Darhol ishga tushuvchi funksiyalar (IIFE)
IIFE (Immediately Invoked Function Expression) — bu e'lon qilingan zahoti darhol ishga tushadigan JavaScript funksiyasidir.
Sintaksis
IIFE ikki qismdan iborat:
- Qavs ichidagi funksiya: Funksiyani ifoda (expression) sifatida e'lon qilish uchun jingalak qavslar ichiga olinadi.
- Chaqiruv qavslari
(): Funksiyani darhol ishga tushirish uchun oxiriga qo'yiladi.
Misol
;(function () {
let message = 'Salom, men IIFE funksiyasiman!'
console.log(message)
})()Nima uchun IIFE ishlatiladi?
IIFE-ning asosiy maqsadi — shaxsiy scope (ayrim hudud) yaratish va global o'zgaruvchilar to'qnashuvidan qochishdir.
Misol: Global o'zgaruvchilardan himoyalanish
let x = 'Global'
;(function () {
let x = 'Local'
console.log(x) // "Local"
})()
console.log(x) // "Global"O'zgaruvchilarni yashirish
IIFE ichida e'lon qilingan o'zgaruvchilar tashqi dunyodan himoyalangan bo'ladi. Bu modul tizimlari paydo bo'lishidan oldin JavaScript-da ma'lumotlarni yashirishning (encapsulation) asosiy usuli bo'lgan.
Arrow funksiya bilan IIFE
Arrow funksiyalaridan ham IIFE sifatida foydalanish mumkin:
Misol
;(() => {
console.log('Men Arrow-IIFE man!')
})()Foydali maslahat
Zamonaviy JavaScript-da (ES6+) ko'pincha IIFE o'rniga oddiy bloklar { let x = ... } yoki Modullarishlatiladi. Lekin kutubxonalar yaratishda va asinxron await amallarining eng yuqori darajasida IIFE hali ham keng qo'llaniladi.
