JavaScript क्लोजर्स
JavaScript में, सभी फ़ंक्शन्स क्लोजर्स की तरह काम करते हैं। एक क्लोजर एक फ़ंक्शन है, जो इनवोक होने पर उस स्कोप का उपयोग करता है जिसमें इसे डिक्लेयर किया गया था। यह वह स्कोप नहीं है जिसमें इसे इनवोक किया गया था।
उदाहरण
<!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>
JavaScript नेस्टेड फ़ंक्शन्स
JavaScript 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>निम्नलिखित बटन पर क्लिक करके फ़ंक्शन कॉल करें</p>
<form>
<inputtype="button"onclick="secondFunction()"value="CallFunction">
</form>
<p>फ़ंक्शन के अंदर अलग पैरामीटर्स उपयोग करें और फिर कोशिश करें...</p>
</body>
</html>