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() {
}
Функциянын ичинде каалаган өзгөрмөгө кайрылганыбызда, ал өзгөрмө алгач функциянын жергиликтүү өзгөрмөлөрүнүн арасынан издөөлөнөт. Эгер андай өзгөрмө табылбаса, анда функциянын лексикалык айланасынан изделет.