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