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:
let 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:
{num1: 1, num2: 2}
Leksiki gurşawyň islendik üýtgeýjiniň bahasy hemişe şol üýtgeýjäniň häzirki bahasyna deňdir:
let 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.