Лексичко окружење функција у ЈаваСкрипту
Све спољашње, функцији доступне променљиве, називају се њеним лексичким окружењем (LexicalEnvironment).
У следећем примеру функцији су доступне две
променљиве: num1 и num2, које
и чине лексичко окружење наше функције:
let num1 = 1;
let num2 = 2;
function func() {
// функција зна за променљиве num1 и num2
}
Само лексичко окружење представља неки унутрашњи ЈаваСкрипт објекат, везан за нашу функцију. У овом случају њега се може представити у следећем облику:
{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() {
}
Када покушамо да приступимо било којој променљивој унутар функције, та променљива се прво тражи међу локалним променљивима функције и, ако такве променљиве тамо нема, тражи се у лексичком окружењу функције.