JavaScript-de funksiýalaryň leksiki daşky gurşawy

Funksiýa üçin ähli daşky, elýeterli üýtgeýänler, onyň leksiki gurşawy diýilýär (LexicalEnvironment).

Aşakdaky mysalda funksiýa iki üýtgeýän üçin elýeterlidir: num1 we num2, olar biziň funksiýamyzyň leksiki gurşawydyr:

javascriptlet num1 = 1;
let num2 = 2;

function func() {
  // funksiýa num1 we num2 üýtgeýänleri barada bilýär
}

Leksiki gurşawyň özi JavaScript-iň birnäçe içki objekti bolup, biziň funksiýamyza baglanandyr. Bu ýagdaýda ony aşakdaky görnüşde göz öňüne getirip bolýar:

javascript{num1: 1, num2: 2}

Leksiki gurşawyň islendik üýtgeýjiniň bahasy hemişe şol üýtgeýjäniň häzirki bahasyna deňdir:

javascriptlet num1 = 1; // gurşaw {num1: 1}
let num2 = 2; // gurşaw {num1: 1, num2: 2}

// num1 üýtgeýjini üýtgedeliň:
num1 = 123; // gurşaw {num1: 123, num2: 2}

function func() {
  
}

Funksiýanyň içinde bir üýtgeýjä ýüzlenmekçi bolanymyzda, bu üýtgeýän ilki bilen funksiýanyň ýerli üýtgeýänleri arasında gözlenýär we, eger onda şondak üýtgeýän ýok bolsa, onda funksiýanyň leksiki gurşawynda gözlenýär.