जावास्क्रिप्ट में फ़ंक्शन का लेक्सिकल एनवायरनमेंट
फ़ंक्शन के सभी बाहरी, सुलभ चर, उसका लेक्सिकल एनवायरनमेंट कहलाते हैं (LexicalEnvironment)।
निम्नलिखित उदाहरण में फ़ंक्शन के लिए दो चर सुलभ हैं:
num1 और num2, जो
हमारे फ़ंक्शन का लेक्सिकल एनवायरनमेंट हैं:
let num1 = 1;
let num2 = 2;
function func() {
// फ़ंक्शन num1 और num2 चर के बारे में जानता है
}
लेक्सिकल एनवायरनमेंट स्वयं जावास्क्रिप्ट का एक आंतरिक ऑब्जेक्ट है, जो हमारे फ़ंक्शन से बंधा हुआ है। इस मामले में इसे निम्नलिखित रूप में दर्शाया जा सकता है:
{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() {
}
जब हम फ़ंक्शन के अंदर किसी चर को एक्सेस करने का प्रयास करते हैं, तो यह चर सबसे पहले फ़ंक्शन के लोकल चर में खोजा जाता है और, यदि वहाँ ऐसा कोई चर नहीं मिलता है, तो फ़ंक्शन के लेक्सिकल एनवायरनमेंट में खोजा जाता है।