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:
let 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:
{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:
let 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.