JavaScript-da Yopilishlar
Keling, endi yopilish (closure) tushunchasini o'rganamiz. Aslida siz bu tushuncha bilan tanishsiz, faqat to'g'ri terminologiyani bilish qoldi.
Shunday qilib, yopilish - bu funktsiya va unga kirish mumkin bo'lgan barcha tashqi o'zgaruvchilar bilan birga. Yoki, boshqacha qilib aytganda, yopilish - bu funktsiya o'z leksik muhiti bilan birga.
JavaScript-da ko'pincha, "funktsiya yopilishi" deyilganda, o'sha funktsiyaning o'zi emas, balki aynan uning tashqi o'zgaruvchilari nazarda tutiladi. Agar biron bir funktsiya o'z leksik muhitidan o'zgaruvchi oladigan bo'lsa, unda "o'zgaruvchi yopilishdan olinadi" deyiladi.
Oldingi darsda qilgan kodimizni eslaymiz:
function test() {
let num = 1;
return function() {
console.log(num);
}
}
let func = test();
func(); // 1 chiqadi
Bunday holatda, func funktsiyasi
num o'zgaruvchisining qiymatini yopilishdan
oladi deyish mumkin. Shuningdek, func funktsiyasi
num o'zgaruvchisining qiymatini yopilishda
saqlaydi deyish mumkin.