ホームページ > 記事 > ウェブフロントエンド > JavaScriptの関数の種類を簡単解説_基礎知識
この記事では主に通常関数、匿名関数、クロージャ関数を紹介します
1. 共通機能の紹介
1.1 例
1.2 Js 内の同名関数の上書き
JS では、同じ関数名と異なるパラメーター シグネチャを持つ関数を定義すると、後の関数が前の関数を上書きします。呼び出された場合、次の関数のみが呼び出されます。
1.3 引数オブジェクト
arguments は C# の params に似ており、変数パラメーターを操作します。関数に渡されるパラメーターの数は、定義時のパラメーターの数よりも大きくなります。
1.4 関数のデフォルト範囲値
関数で戻り値が指定されていない場合、デフォルトの戻り値は「未定義」です
2. 匿名関数
2.1 変数無名関数
2.1.1 説明
変数やイベントに関数を割り当てることができます。
2.1.2 例
2.1.3 該当するシナリオ
①関数名の汚染を避ける。最初に名前を付けて関数を宣言し、それを変数またはイベントに割り当てると、関数名を悪用することになります。
2.2 名前のない匿名関数
2.2.1 説明
つまり、関数が宣言されると、その後にパラメーターが続きます。 JS 構文がこの関数を解析すると、内部のコードがすぐに実行されます。
2.2.2 例
2.2.3 該当するシナリオ
①実行は一度だけで済みます。ブラウザがロードされている場合、関数は 1 回実行するだけで済み、その後は実行されません。
3. クロージャ機能
3.1 説明
関数 A が内部で関数 B を宣言し、関数 B が関数 B の外部の変数を参照し、関数 A の戻り値が関数 B への参照であるとします。この場合、関数 B はクロージャ関数です。
3.2 例
3.2.1 例 1: グローバル参照とローカル参照
allShowA は関数 funA を参照するグローバル変数です。 allShowA()を繰り返し実行すると、1、2、3、4などの累積値が出力されます。
関数partShowA()を実行します。ローカル変数showaのみがfunAを参照するために内部で宣言されているため、実行後、スコープによりshowaによって占有されていたリソースが解放されます。
クロージャの鍵はスコープです。グローバル変数によって占有されているリソースは、ページが変更されるかブラウザが閉じられるときにのみ解放されます。 var allShowA = funA() の場合、allShowA が funB() を参照するのと同等であるため、funB() 内のリソースは GC によってリサイクルされず、したがって funA() 内のリソースもリサイクルされません。
3.2.2 例 2: パラメトリッククロージャー関数
3.2.3 例 3: 親関数 funA 内での変数の共有
3.3 該当するシナリオ
① funA の変数は外部から直接アクセスできないため、関数 funA 内の変数の安全性を確保する。
JavaScript 関数について何か学びましたか? ご質問がございましたら、メッセージを残してください。