जावास्क्रिप्ट में काउंटर लोकल वेरिएबल
निम्नलिखित कोड पर विचार करें:
function test() {
let num = 1;
return function() {
console.log(num);
num++;
};
}
test()(); // 1 प्रिंट करेगा
test()(); // 1 प्रिंट करेगा
हमेशा संख्या 1 ही क्यों प्रिंट होगी?
इसे समझने के लिए, हम अपना कोड दूसरे तरीके
से लिखते हैं:
function test() {
let num = 1;
return function() {
console.log(num);
num++;
};
};
let func1 = test(); //!! पहला फंक्शन
func1(); //1 प्रिंट करेगा
let func2 = test(); //!! दूसरा फंक्शन
func2(); //1 प्रिंट करेगा
यानी, test()() इस तरह से फंक्शन test
को कॉल करना, अपना एक अलग फंक्शन अपने क्लोजर
के साथ बनाता है और तुरंत उस फंक्शन को कॉल
कर देता है।
कोड रन किए बिना ही निर्धारित करें कि कंसोल में क्या प्रिंट होगा:
function func() {
let num = 0;
return function() {
console.log(num);
num++;
};
}
func()();
func()();
func()();
कोड रन किए बिना ही निर्धारित करें कि कंसोल में क्या प्रिंट होगा:
function func() {
let num = 0;
return function() {
console.log(num);
num++;
};
}
let test = func;
test()();
test()();
test()();