IIFE nima? JavaScriptda darhol chaqiriladigan funksiya
Assalamu Alaykum bugun IIFE yani Immediately Invoked Function Expression nimaligini bilib olamiz . Bu terminni birinchi marta eshitib o'zingizni haqiqatda Javascript dasturchisi ekaningizga shubhalanib qolgan bo'lishingiz ham mumkin (xuddi mendek ;) . Odatda dasturlashda oddiy narsalar ham shunaqangi murrakkab nomlar ortida yashiringan bo'ladi . IIFE va oddiy funksiya o'rtasida qanaqa farq borligini bilmasligingiz mumkin va bu normal holat buni ushbu maqolada bilib olamiz.
Xo'sh birinichi bo'lib terminni o'zbek tiliga tarjima qilishga harakat qilamiz darhol chaqirilgan funksiya(balkim yaxshi tarjima bo'lmasligi mumkin) . Bu nima degani oddiy qilib aytganda funksiya yaratilgan holatda birdaniga ishga tushurilgan degani.
IIFE bu fuknsiya va uning ichidagi o'zgaruvchilarni Scope saqlash uchun yordam beradigan usul.Scope bu juda notanish termin bo'lishi mumkin va bu shunchaki o'zgaruvchilarga qayerdan ruxsat borligini bildiradi.
Odatda IIFEnisiz framework/librarylarda ular o'zlaridagi o'zgaruvchilarning scopeni himoyalash uchun hamda foydalanuvchi hech narsa qilmasdan dastur ishga tushishi uchun foydalaniladi.
Quyidagi oddiy funksiya misoliga qaraymiz balkim bu bizga IIFEnito'liqroq tushunishimizga yordam berar :
function sum() {
var x = 10;
var y = 10;
var result = x + y;
console.log(result);
}
sum();Tepadagi misolda oddiy sum yani 2 ta qiymat yig'indisini hisoblovchi funksiyani ko'rishimiz mumkin .Endi sum funksiyani shu paytdan boshlab dasturning istalgan joyida ishlatishimiz mumkin.
Balkim biz buni xohlamasmiz ya’ni biz bu funksiyani bir marta ishlatib natijani olgandan so'ng u kerakmasdir.Va biz uni keyinchalik tasodifan ishlatishni xohlamasmiz.Bu misolda bizda o'zgaruvchilar immutable (yana bir juda chiroyli termin va bu ularni kelajakda o'zgartira olmaymiz degani).Bu yerda biz o'zgaruvchilarni himoyalashga erishdik xo'sh funksiyani qanday himoyalaymiz.
Bizga IIFE yordamga keladi
(function () {
var x = 20;
var y = 20;
var answer = x + y;
console.log(answer);
})();Biz shu natijaga keldik ee bu funksiya bizga faqatgina bir marta kerak bo'lganligi tufayli unga nom qo'yishdan mano yoq va biz anonymous function expression yaratamiz. Oxiridagi qavslar esa bu xuddi shu yerning o'zida chaqirilayotganini bildiradi. Va bu hammasi tamom.
Endi IIFE haqida hammasini bilib oldingiz ;)
Xulosa
Immediately Invoked Function Expression bu biznning funksiya va uninig ichidagi o'zgaruvchilarni himoyalashning eng yaxshi yo'li.
E’tiboringiz uchun rahmat.