Mjedisi Leksikor i Funksioneve në JavaScript

Të gjitha variablat e jashtëm, të aksesueshëm nga funksioni, quhen mjedisi i tij leksikor (LexicalEnvironment).

Në shembullin vijues, funksionit i janë të aksesueshme dy variabla: num1 dhe num2, të cilat përbëjnë mjedisin leksikor të funksionit tonë:

javascriptlet num1 = 1;
let num2 = 2;

function func() {
  // funksioni di për variablat num1 dhe num2
}

Vetë mjedisi leksikor përfaqëson ndonjë objekt të brendshëm JavaScript, i lidhur me funksionin tonë. Në këtë rast, ai mund të paraqitet në formën vijuese:

javascript{num1: 1, num2: 2}

Vlera e çdo variabli të mjedisit leksikor është gjithmonë e barabartë me vlerën aktuale të atij variabli:

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

// Le të ndryshojmë variablin num1:
num1 = 123; // mjedisi {num1: 123, num2: 2}

function func() {
  
}

Kur përpiqemi të aksesojmë ndonjë variabël brenda funksionit, së pari ky variabël kërkohet midis variablave lokalë të funksionit dhe, nëse nuk gjendet i tillë aty, atëherë kërkohet në mjedisin leksikor të funksionit.