ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript匿名関数の使用分析_JavaScriptスキル

JavaScript匿名関数の使用分析_JavaScriptスキル

WBOY
WBOYオリジナル
2016-05-16 16:14:151175ブラウズ

この記事の例では、JavaScript 匿名関数の使用法について説明します。皆さんの参考に共有してください。詳細は以下の通りです。

1. 関数を定義します

JavaScript では、

などの「関数宣言」と「関数式」を通じて関数を定義できます。

1.「関数宣言」で関数を定義する

function t1(){}

2.「関数式」で関数を定義する

t2 = function(){}

しかし、2 つの方法で関数を定義した場合の効果は異なります
t1 は関数宣言であり、「字句解析」中、AO.t1 = function(){}、-------------「字句解析」段階で役割を果たします
t2 は、「実行」中、AO.t2 = function(){} の代入操作です。値は右側の式によって返される結果です。-----これは「実行」時にのみ有効です。ステージ

2. 匿名関数

JavaScript では、括弧 () 内のステートメントは式として実行されます。前述したように、「関数式」を使用して関数を定義できます。次に、
などの関数を () 内に定義できます。

(function t3(){alert(' i am t3');})

関数が名前を使用しない場合は、次のように変更します

(function(){alert(' i am t3');})

()内に含まれるステートメントは式なので戻り値を持ちます。(function(){alert(' i am t3');})の戻り値は定義された関数であり、すぐに呼び出すことができます。 、
など

(function(){alert(' i am t3');})()

そこで、()内に名前のない関数を定義します。これを無名関数と呼びます。このように、匿名関数はグローバルな状況を汚すことなく即座に実行されます。これを関数式の即時実行と呼びます。

3. jquery は匿名関数です

jquery のコードは匿名関数にカプセル化されています。これは jquery の最も外側のコードです。

(function(window,undefined){})(window);//立即调用

しかし、jquery はウィンドウを渡すのに、未定義は渡さないのはなぜでしょうか?

回答: ウィンドウを渡す目的は、検索を高速化し、変数のクエリ時間を短縮することです。たとえば、次の js コード

function(){
 function(){
   function(){
  function(){
   document.getElementById();
//这个document将会沿作用域层层上找,直到最外层window全局。
  }
   }
 }
}

ローカル変数の内部検索を高速化するために、jquery はウィンドウをパラメータとして直接渡し、ウィンドウが jquery の内部 AO 上にあるようにします。

未定義を渡さない理由は安全のためです。IE と FF の以前のバージョンでは、未定義が再割り当てされる可能性があるためです (例: unknown=3)。

ローカル変数を未定義(名前は未定義)として宣言し、同時にパラメータを渡さなくても値は当然未定義になります

この記事が皆様の JavaScript プログラミング設計に役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。