การปิด 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>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>