Javascript
 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>

  1. JavaScriptのカスタム関数と組み込み関数の違いは何ですか?

    JavaScriptのカスタム関数はユーザー定義関数です。 JavaScriptを使用すると、独自の関数を作成できます。構文は次のとおりです- 構文 <script>    <!--       function functionname(parameter-list)       {          statements       }    //--> </script> 一

  2. JavaとJavaScriptの違いは何ですか?

    Web開発者のJeremyKeithが2009年に述べたように、「JavaはJavaScriptに、ハムはハムスターになります」。そのアナロジーの正確さは議論の余地がありますが、その背後にある精神は確かです。JavaとJavaScriptは、共通の言語ルートを共有しているにもかかわらず、2つの非常に異なるプログラミング言語です。何年にもわたって、それらはもう少し重複するようになりましたが、JavaScriptは、Webサイトをインタラクティブにする主要なフロントエンド言語であり続け、Javaはサーバーサイドおよびアプリケーションプログラミングで引き続き人気があります。開発者を雇ったり、コーディ