Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

อะไรคือความแตกต่างระหว่างฟังก์ชันการปิดและฟังก์ชันซ้อนใน JavaScript?


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