जावास्क्रिप्ट में फ़ंक्शनों की बाहरी वेरिएबल्स तक पहुंच
आइए निम्नलिखित कोड पर विचार करें:
let num = 1; // वेरिएबल का मान सेट करते हैं
function func() {
console.log(num); // इसे कंसोल में आउटपुट करते हैं
}
func(); // फ़ंक्शन को कॉल करते हैं
जैसा कि मैंने पहले उल्लेख किया था, वेरिएबल का मान अनिवार्य रूप से फ़ंक्शन की परिभाषा से पहले नहीं होना चाहिए, मुख्य बात यह है कि यह फ़ंक्शन के कॉल से पहले हो:
function func() {
console.log(num);
}
let num = 1;
func();
वास्तव में यह पूरी तरह से ऐसा नहीं है। हमारा फ़ंक्शन
अपने कॉल से पहले भी वेरिएबल num का मान जानता है:
let num = 1;
function func() {
console.log(num); // फ़ंक्शन पहले से ही जानता है कि num = 1
}
यहाँ एक अधिक जटिल उदाहरण है:
let num = 1; // इस समय फ़ंक्शन को पता चलता है कि num = 1
function func() {
console.log(num);
}
num = 2; // इस समय फ़ंक्शन को पता चलता है कि num = 2
आइए फ़ंक्शन कॉल जोड़ते हैं:
let num = 1; // इस समय फ़ंक्शन को पता चलता है कि num = 1
func(); // 1 आउटपुट करेगा
function func() {
console.log(num);
}
func(); // 1 आउटपुट करेगा
num = 2; // इस समय फ़ंक्शन को पता चलता है कि num = 2
func(); // 2 आउटपुट करेगा
एक बार फिर: वास्तव में फ़ंक्शन बाहरी वेरिएबल्स के मान को जानता है, भले ही उसे कॉल न किया गया हो।