জাভাস্ক্রিপ্ট ক্লোজার
জাভাস্ক্রিপ্টে সকল ফাংশন ক্লোজার처럼 কাজ করে। একটি ক্লোজার হলো একটি ফাংশন, যা আহ্বান করার সময় সেটি যেখানে ডিক্লেয়ার করা হয়েছিল সেই স্কোপটি ব্যবহার করে। এটি সেটি যেখানে আহ্বান করা হয়েছে সেই স্কোপ নয়।
উদাহরণ -
<!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>জাভাস্ক্রিপ্ট নেস্টেড ফাংশন
জাভাস্ক্রিপ্ট ১.২ ফাংশন ডেফিনিশনকে অন্যান্য ফাংশনের ভিতরে নেস্টেড করার অনুমতি দেয়। তবে একটি রেস্ট্রিকশন আছে যে ফাংশন ডেফিনিশন লুপ বা কন্ডিশনালের ভিতরে আসতে পারবে না। এই রেস্ট্রিকশন শুধু ফাংশন স্টেটমেন্টের সাথে ফাংশন ডিক্লেরেশনের ক্ষেত্রে প্রযোজ্য।
উদাহরণ
নেস্টেড ফাংশন ইমপ্লিমেন্ট করার পদ্ধতি শিখতে নিচের উদাহরণটি রান করার চেষ্টা করুন -
<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>Click the 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>