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