Lingkungan Leksikal Fungsi dalam JavaScript
Semua variabel eksternal yang dapat diakses oleh fungsi, disebut lingkungan leksikalnya (LexicalEnvironment).
Dalam contoh berikut, fungsi dapat mengakses dua
variabel: num1 dan num2, yang
merupakan lingkungan leksikal dari fungsi kita:
let num1 = 1;
let num2 = 2;
function func() {
// fungsi mengetahui tentang variabel num1 dan num2
}
Lingkungan leksikal itu sendiri merupakan suatu objek internal JavaScript yang terikat pada fungsi kita. Dalam hal ini, dapat digambarkan sebagai berikut:
{num1: 1, num2: 2}
Nilai dari setiap variabel dalam lingkungan leksikal selalu sama dengan nilai terkini dari variabel tersebut:
let num1 = 1; // lingkungan {num1: 1}
let num2 = 2; // lingkungan {num1: 1, num2: 2}
// Ubah variabel num1:
num1 = 123; // lingkungan {num1: 123, num2: 2}
function func() {
}
Ketika kita mencoba mengakses variabel apa pun di dalam fungsi, variabel tersebut pertama-tama akan dicari di antara variabel lokal fungsi dan jika variabel tersebut tidak ada di sana, maka akan dicari di lingkungan leksikal fungsi.