しかし、私は JavaScript を頻繁に使用するので、それに含まれる概念を理解する必要があります。 実際、JavaScript のクロージャーの概念は非常に単純です。つまり、関数は外部変数を使用し、パラメーターを渡さずに取得できます。 例: コードをコピー コードは次のとおりです: var sMessage = "Hello world"; <br>関数 SayHello(){ <br>alert(sMessage); <br>addNumber(1,2); 🎜> <br>var iBaseNum = 10; <br>function addNumber(iNum1, iNum2) { <br>function doAddition() { <br>alert(iNum1 iNum2 iBaseNum) <br>return doAddition(); ; <br>} <br>関数 a(){ <br>var i=0; <br>関数 b(){ <br>} <br>return <br> <br>var c(); <br>c(); <br><br><br>最初の関数は渡されないパラメータは、クロージャと呼ばれる sMessage 変数を直接使用します。 <br>2 番目の関数はより複雑です。これもクロージャ関数であり、実行環境で iNum1、iNum2、および外部変数 iBaseNum を直接取得します。 <br>3 番目の関数は、変数 i へのアクセスを保護し、常に i をメモリに保存し、増加し続けることができます。 (クロージャの古典的な使用法) <br>jquery のクロージャも似ています。最初に例を挙げましょう<br><br>質問するかもしれません<br> </div> <br><br><br>コードをコピー<br><br><br> コードは次のとおりです。 <br><div class="codetitle"> <span>(function($){ <a style="CURSOR: pointer" data="68384" class="copybut" id="copybut68384" onclick="doCopy('code68384')">$("div p").click(function(){alert("cssrain! ") }); <u>})(jQuery); //クロージャ </u></a> </span>これはどうやって書くのでしょうか? </div>心配しないでください。私も UPC にアドバイスを求めて、少し理解しました。 <div class="codebody" id="code68384">ここでの$は単なる仮引数ですが、jqueryはグローバル変数なので関数を呼ばなくても自動的に実行されるか、関数を書いてから呼び出すという2ステップで通常の関数に変換することができます。それ。 <br>以下に示すように<br>実際: <br><br> </div> <br><br>コードをコピーします<br><br><br> コードは次のとおりです:<br><br> <div class="codetitle">( function($){ <span>$("div p").click(...); <a style="CURSOR: pointer" data="46358" class="copybut" id="copybut46358" onclick="doCopy('code46358')">})(jQuery); <u></u> </a> は </span> </div> <div class="codebody" id="code46358"> <br>コードをコピー<br><br><br> コードは次のとおりです:</div> <br> <br>function tempFunction($){ //関数を作成します$ を仮パラメータとして使用します<div class="codetitle">$("div p").click(....); <span>} <a style="CURSOR: pointer" data="85879" class="copybut" id="copybut85879" onclick="doCopy('code85879')">TempFunction(jQuery); //関数を実行するために実際のパラメータを渡します。 🎜><u> </u>直接実行してください このように書いてください、忘れてください </a></span> </div> <div class="codebody" id="code85879"> <br><br>コードをコピーしてください<br><br><br>コードは次のとおりです:</div> <br> <br>(function(cssrain ){ <br>cssrain("div p").click(.... ); <div class="codetitle">})(jQuery);クロージャ <span><a style="CURSOR: pointer" data="67316" class="copybut" id="copybut67316" onclick="doCopy('code67316')"> <u></u> クロージャ 基本的な書き方: </a>(function(){do someting})(); </span>//匿名関数を定義して実行すると理解できます。 </div>パラメータを指定すると、次のようになります。 <div class="codebody" id="code67316">(function(仮パラメータ){何かを行う})(実際のパラメータ) <br>さらに<br>(function(){var upc="i am upc"})(); <br>alert(upc); <br>はい プロンプトが未定義です。 </div>クロージャ後は内部の変数がローカルと同等になるためです。 <br>クロージャーの利点: <br>追加のグローバル変数は追加されません。 <br>実行中のすべての変数は匿名関数内にあります。 <br>上記の例はあまり良くなく、JavaScript クロージャと少し混同されていますが、実際には jquery のクロージャです。 jQueryで処理しているだけです。 <br>もし何かあったら、お互いに話し合ってください。私も初心者なので、まだまだ分からないことがたくさんあります。