Лексічнае асяроддзе функцый у JavaScript
Усе знешнія, даступныя функцыі зменныя, называюцца яе лексічным асяроддзем (англ. LexicalEnvironment).
У наступным прыкладзе функцыі даступныя дзве
зменныя: num1
і num2
, якія
і з'яўляюцца лексічным асяроддзем нашай функцыі:
let num1 = 1;
let num2 = 2;
function func() {
// функцыя ведае пра зменныя num1 і num2
}
Само лексічнае асяроддзе ўяўляе сабой некаторы ўнутраны аб'ект JavaScript, прывязаны да нашай функцыі. У дадзеным выпадку яго можна прадставіць у наступным выглядзе:
{num1: 1, num2: 2}
Значэнне любой зменнай лексічнага асяроддзя заўсёды роўна бягучаму значэнню гэтай зменнай:
let num1 = 1; // асяроддзе {num1: 1}
let num2 = 2; // асяроддзе {num1: 1, num2: 2}
// Зменім зменную num1:
num1 = 123; // асяроддзе {num1: 123, num2: 2}
function func() {
}
Калі мы спрабуем звярнуцца да якой-небудзь зменнай унутры функцыі, гэтая зменная спачатку шукаецца сярод лакальных зменных функцыі і, калі такой зменнай там няма, то шукаецца ў лексічным асяроддзі функцыі.