JavaScript'te Fonksiyonların Sözel Çevresi

Bir fonksiyonun erişebildiği tüm dış değişkenlere, onun sözel çevresi (LexicalEnvironment) denir.

Aşağıdaki örnekte, fonksiyon iki değişkene erişebilir: num1 ve num2, bunlar fonksiyonumuzun sözel çevresini oluşturur:

javascriptlet num1 = 1;
let num2 = 2;

function func() {
  // fonksiyon num1 ve num2 değişkenlerini bilir
}

Sözel çevrenin kendisi, JavaScript'e ait, fonksiyonumuza bağlı dahili bir nesnedir. Bu durumda, aşağıdaki şekilde temsil edilebilir:

javascript{num1: 1, num2: 2}

Sözel çevredeki herhangi bir değişkenin değeri her zaman o değişkenin mevcut değerine eşittir:

javascriptlet num1 = 1; // çevre {num1: 1}
let num2 = 2; // çevre {num1: 1, num2: 2}

// num1 değişkenini değiştirelim:
num1 = 123; // çevre {num1: 123, num2: 2}

function func() {
  
}

Bir fonksiyonun içinde herhangi bir değişkene erişmeye çalıştığımızda, bu değişken önce fonksiyonun yerel değişkenleri arasında aranır ve eğer orada böyle bir değişken yoksa, fonksiyonun sözel çevresinde aranır.