JavaScript-də Funksiyaların Leksik Muhiti

Funksiyaya mənsub olmayan, lakin ona əlçatan olan bütün dəyişənlər, onun leksik mühiti adlanır (LexicalEnvironment).

Aşağıdakı nümunədə funksiyaya iki dəyişən əlçatandır: num1 və num2, hansılar ki, bizim funksiyamızın leksik mühitini təşkil edir:

javascriptlet num1 = 1;
let num2 = 2;

function func() {
  // funksiya num1 və num2 dəyişənləri haqqında məlumat əldə edir
}

Leksik mühitin özü JavaScript-in funksiyamıza bağlanmış daxili bir obyektidir. Bu halda onu aşağıdakı formada təqdim etmək olar:

javascript{num1: 1, num2: 2}

Leksik mühitin istənilən dəyişəninin dəyəri həmişə həmin dəyişənin cari dəyərinə bərabərdir:

javascriptlet num1 = 1; // mühit {num1: 1}
let num2 = 2; // mühit {num1: 1, num2: 2}

// num1 dəyişənini dəyişək:
num1 = 123; // mühit {num1: 123, num2: 2}

function func() {
  
}

Funksiya daxilində hər hansı bir dəyişənə müraciət etməyə çalışdıqda, ilk növbədə həmin dəyişən funksiyanın lokal dəyişənləri arasında axtarılır və əgər belə bir dəyişən yoxdursa, onda funksiyanın leksik mühitində axtarılır.