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

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

May 16, 2016 pm 04:14 PM
javascript 無名関数 使用法

この記事の例では、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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

C++ 匿名関数の使用法と特徴 C++ 匿名関数の使用法と特徴 Apr 19, 2024 am 09:03 AM

ラムダ式とも呼ばれる匿名関数は、名前を指定せず、1 回限りの使用または関数ポインターを渡すために使用される関数です。機能には、匿名性、ワンタイム使用、クロージャ、戻り値の型推論が含まれます。実際には、ソートやその他の 1 回限りの関数呼び出しによく使用されます。

WPSdatedif関数の使い方 WPSdatedif関数の使い方 Feb 20, 2024 pm 10:27 PM

WPS は一般的に使用されるオフィス ソフトウェア スイートであり、WPS テーブル関数はデータ処理と計算に広く使用されています。 WPS テーブルには、2 つの日付間の時差を計算するために使用される、DATEDIF 関数という非常に便利な関数があります。 DATEDIF 関数は英語の DateDifference の略語で、構文は次のとおりです: DATEDIF(start_date,end_date,unit) ここで、start_date は開始日を表します。

C言語でexit関数を正しく使用する方法 C言語でexit関数を正しく使用する方法 Feb 18, 2024 pm 03:40 PM

C 言語で exit 関数を使用する方法には、具体的なコード例が必要です。C 言語では、プログラムの実行をプログラムの初期段階で終了したり、特定の条件下でプログラムを終了したりする必要があることがよくあります。 C 言語には、この関数を実装するための exit() 関数が用意されています。この記事では、exit() 関数の使用法を紹介し、対応するコード例を示します。 exit() 関数は C 言語の標準ライブラリ関数であり、ヘッダー ファイルに含まれています。その機能はプログラムの実行を終了することであり、整数を取ることができます。

MySQL ISNULL関数の詳しい解説と使い方紹介 MySQL ISNULL関数の詳しい解説と使い方紹介 Mar 01, 2024 pm 05:24 PM

MySQL の ISNULL() 関数は、指定された式またはカラムが NULL かどうかを判断するために使用される関数です。ブール値、式が NULL の場合は 1、それ以外の場合は 0 を返します。 ISNULL()関数は、SELECT文やWHERE句の条件判定に使用できます。 1. ISNULL() 関数の基本構文: ISNULL(expression) ここで、expression は、NULL かどうかを判断する式です。

Apple ショートカットの使用方法 Apple ショートカットの使用方法 Feb 18, 2024 pm 05:22 PM

Apple ショートカット コマンドの使用方法 技術の継続的な発展により、携帯電話は人々の生活に欠かせないものになりました。数ある携帯電話ブランドの中でも、Appleの携帯電話は安定したシステムと強力な機能で常にユーザーに愛されています。その中で、Apple ショートカット コマンド機能は、ユーザーの携帯電話体験をより便利かつ効率的にします。 Apple ショートカットは、Apple が iOS12 以降のバージョン向けに開始した機能で、ユーザーがカスタム コマンドを作成して実行することで携帯電話の操作を簡素化し、より効率的な作業や作業を実現するのに役立ちます。

Python ラムダ式: 省略、簡潔、強力 Python ラムダ式: 省略、簡潔、強力 Feb 19, 2024 pm 08:10 PM

pythonLambda 式は、簡潔で読みやすく、使いやすいコードを作成するための強力で柔軟なツールです。これらは、他の関数に引数として渡したり、変数に保存したりできる匿名関数をすばやく作成するのに最適です。 Lambda 式の基本構文は次のとおりです。 lambdaarguments:expression たとえば、次の Lambda 式は 2 つの数値を加算します: lambdax,y:x+y この Lambda 式は、次のように引数として別の関数に渡すことができます。 defsum( x ,y):returnx+yresult=sum(lambdax,y:x+y,1,2) この例では

CSS Transform を使用して要素を変換する CSS Transform を使用して要素を変換する Feb 24, 2024 am 10:09 AM

CSS での Transform の使用 CSS の Transform プロパティは、HTML 要素の移動、回転、拡大縮小、傾斜などの操作を実行できる非常に強力なツールです。要素の外観を劇的に変更し、Web ページをよりクリエイティブでダイナミックにすることができます。この記事では、Transform のさまざまな使用方法を詳しく紹介し、具体的なコード例を示します。 1. 移動 (Translate) 移動とは、要素を x 軸および y 軸に沿って指定された距離だけ移動することを指します。その構文は次のとおりです。

SQL の解析での unique キーワードの使用 SQL の解析での unique キーワードの使用 Feb 18, 2024 pm 09:21 PM

SQL での個別の使用法の詳細な説明 SQL データベースでは、重複データを削除する必要がある状況によく遭遇します。現時点では、distinct キーワードを使用すると、重複データを削除し、クエリ結果をより明確かつ正確にすることができます。 Different の基本的な使用法は非常に簡単で、select ステートメントで Distinct キーワードを使用するだけです。たとえば、次は通常の選択ステートメントです: SELECTcolumn_name

See all articles