Фази лексикии функсияҳо дар 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() {
}
Вақте ки мо дар дохили функсия ба ягон тағирёбандаи муроҷиат мекунем, ин тағирёбанда аввал дар байни тағирёбандаҳои маҳаллии функсия ҷуста мешавад ва агар чунин тағирёбанда он ҷо набошад, пас дар фази лексикии функсия ҷуста мешавад.