July 21, 2023

CLOSURE IN JS

CLOSURE bu function ichida biror bir uzgaruvchini ishlashiga ruhsat berishidir

let num = 123;

function n() { 

function m() {   

console.log(num); 

m();

}

n() /// 123 chiqadi

yani bu erda biz num degan 123 qiymatga ega bir uzgaruvchi elon qildik va keyin n 

nomli bitta n () function ochdik va bu function ichida yana bitta m () function ochdik

uni ichida esa consolga num ni chiqar deb buyruq beryapmiz.

har bir { } qavslar kiritilganda qavslar orasida lexical environment (yani muhit) hosil qiladi

yuqoridagi kodga qaytsak bizda bitta qymat tayinlab elon qilingan uzgaruvchi v aikkita function bor

console.log (num) komondasi birinchi bulib m () function uchun hosil bulgan muhit ichida

num degan uzgaruvchini istaydi topolmagach uzidan bitta yuqorida turgan muhitga

murojat etadi yani n () functionga, lekin bu muhitda ham num degan uzgaruvchini

topilgach yana tepa turgan muhitga murojat etadi va eng yuqorida global muhitda

turgan num nomli uzgaruvchini kuradi va uning qiymatini consolga chiqaradi

BU HOLAT CLOSURE DEB ATALADI....