jsクロージャとは何ですか

青灯夜游
青灯夜游オリジナル
2019-05-17 12:28:433069ブラウズ

クロージャは、他の関数の内部変数を読み取ることができる関数です。 JavaScript では、関数内のサブ関数のみがローカル変数を読み取ることができるため、クロージャは「関数内で定義された関数」として理解できます。本質的に、クロージャは関数の内部と関数の外部の間のブリッジです。

jsクロージャとは何ですか

JavaScript クロージャ

JavaScript の関数定義と関数式を、別の関数 (内部関数) の関数本体内に配置できるようにします。 )、内部関数は、それらが配置されている外部関数の宣言内のすべてのローカル変数、パラメーター、およびその他の内部関数にアクセスできます。内部関数の 1 つが外部関数の外部で呼び出される場合、クロージャが形成されます。

クロージャの 3 つの主な特徴は次のとおりです:

1. 関数のネストされた関数

2. 内部関数は外部関数の変数にアクセスできます

3. パラメーターと変数は再利用されません。

クロージャーの使用

クロージャーはさまざまな場所で使用できます。最大の用途は 2 つあり、1 つは前述したように関数内の変数を読み取ること、もう 1 つはこれらの変数の値をメモリに保持することです。

クロージャ使用上の注意

1) クロージャを使用すると関数内の変数がメモリに格納されるため、メモリの消費量が非常に多くなるため、クロージャを使用することはできません。閉じないと、Web ページのパフォーマンスに問題が発生し、IE でメモリ リークが発生する可能性があります。解決策は、関数を終了する前に、未使用のローカル変数をすべて削除することです。

2) クロージャは、親関数内の変数の値を親関数の外で変更します。したがって、親関数をオブジェクトとして使用し、クロージャをそのパブリック メソッドとして使用し、内部変数をプライベート値として使用する場合は、親関数内の変数の値を自由に変更しないように注意する必要があります。

概要:

1. クロージャとは、別の関数のスコープ内の変数にアクセスできる関数を指します。クロージャを作成する最も一般的な方法は、次のとおりです。関数内に別の関数を作成し、別の関数を通じてこの関数のローカル変数にアクセスします。クロージャの欠点は、クロージャがメモリ内に常駐するためメモリ使用量が増加することであり、不適切に使用するとメモリ リークが発生しやすくなります。

2. 何をクロージャとしてカウントするかについては心配する必要はありません。実際、作成したすべての関数はクロージャとしてカウントされます。それがグローバル関数であっても、関数の外部でグローバル変数にアクセスする場合は、クロージャとしてカウントされます。閉鎖の現れ。

以上がjsクロージャとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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