JavaScriptda "Closure" tushunchasi.
JavaScripda har bir funksiya o'zidan tashqarida e'lon qilingan o'zgaruvchidan foydalana oladi va tashqari esa ichkaridagi scope da e'lon qilingan o'zgaruvchidan foydala olmaydi. Buni "Lexical environment" deymiz. Misol uchun, birinchi funksiya ichida ikkinchi funksiya bor bo'lsa, ikkinchi funksiya birinchi funksiyaning o'zgaruvchilaridan foydalana oladi. Mana shuni biz, Closure deymiz.
function makeFunc() {
const name = "Mozilla";
function displayName() {
console.log(name);
}
return displayName;
}
const myFunc = makeFunc();
myFunc();
Ushbu funksiya Closure ga misol bo'la oladi. Ichkaridagi displayName() funksiyasi o'zidan tashqaridagi makeFunc() funksiyasining o'zgaruvchisidan foydalana oladi va name o'zgaruvchisini tekshirsak. Natija "Mozilla" qaytaradi.
Yuqoridagi funksiyaning amali yakunlangan bo'lsa ham uni ichida joylashgan funksiya tashqarida joylashgan funksiyaning o'zgaruvchisidan foydalana oladi.
Manba: Developer Monzilla