Ֆունկցիաների բառային միջավայրը 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() {
}
Երբ մենք փորձում ենք դիմել որևէ փոփոխականի ֆունկցիայի ներսում, այդ փոփոխականը նախ փնտրվում է ֆունկցիայի տեղական փոփոխականների մեջ և, եթե այնտեղ այդպիսի փոփոխական չկա, ապա այն փնտրվում է ֆունկցիայի բառային միջավայրում: