जावास्क्रिप्ट क्लोजर
जावास्क्रिप्ट में, सभी फ़ंक्शन क्लोजर की तरह काम करते हैं। एक क्लोजर एक फ़ंक्शन है, जो उस दायरे का उपयोग करता है जिसमें इसे लागू किए जाने पर घोषित किया गया था। यह वह दायरा नहीं है जिसमें इसे लागू किया गया था।
यहां एक उदाहरण दिया गया है
लाइव डेमो
<!DOCTYPEhtml> <html> <body> <h2>JavaScriptClosures</h2> <script> varp = 20; functiona(){ var p = 40; b(function(){ alert(p); }); } functionb(f){ var p = 60; f(); } a(); </script> </body> </html>
जावास्क्रिप्ट नेस्टेड फ़ंक्शन
जावास्क्रिप्ट 1.2 फ़ंक्शन परिभाषाओं को अन्य कार्यों के भीतर भी नेस्ट करने की अनुमति देता है। फिर भी, एक प्रतिबंध है कि फ़ंक्शन परिभाषाएं लूप या सशर्त के भीतर प्रकट नहीं हो सकती हैं। फ़ंक्शन परिभाषाओं पर ये प्रतिबंध केवल फ़ंक्शन स्टेटमेंट के साथ फ़ंक्शन घोषणाओं पर लागू होते हैं।
उदाहरण
नेस्टेड फ़ंक्शंस को कार्यान्वित करने का तरीका जानने के लिए आप निम्न उदाहरण को चलाने का प्रयास कर सकते हैं
लाइव डेमो
<html> <head> <script> <!-- functionhypotenuse(a,b) { functionsquare(x){returnx*x;} returnMath.sqrt(square(a)+square(b)); } functionsecondFunction() { varresult; result=hypotenuse(5,4); document.write(result ); } //--> </script> </head> <body> <p>Clickthe following button to call the function</p> <form> <inputtype="button"onclick="secondFunction()"value="CallFunction"> </form> <p>Usedifferent parameters inside the function and then try...</p> </body> </html>