Skip to content

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:

  1. Qavs ichidagi funksiya: Funksiyani ifoda (expression) sifatida e'lon qilish uchun jingalak qavslar ichiga olinadi.
  2. Chaqiruv qavslari (): Funksiyani darhol ishga tushirish uchun oxiriga qo'yiladi.

Misol

js
;(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

js
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

js
;(() => {
  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.