ფუნქციების ლექსიკური გარემო 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() {
}
როდესაც ჩვენ ვცდილობთ ფუნქციის შიგნით რაიმე ცვლადთან მივმართოთ, ეს ცვლადი თავდაპირველად მოიძებნება ფუნქციის ლოკალურ ცვლადებს შორის და, თუ ასეთი ცვლადი იქ არ არის, მაშინ იძებნება ფუნქციის ლექსიკურ გარემოში.