JavaScript では、内部関数を含む外部関数の外側で内部関数が呼び出される場合、クロージャが形成されます。クロージャは、関数が戻ったときにリソースを解放しないスタック領域です。クロージャは機能します。関数変数への参照として使用され、関数が返されたときにアクティブ化されます。
このチュートリアルの動作環境: Windows 10 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。
クロージャの公式の説明は次のとおりです: 多くの変数とこれらの変数にバインドされた環境を持つ式 (通常は関数)。表現の一部。
クロージャの特徴:
1. 関数変数への参照として、関数が戻ったときにアクティブ化されます。
2. クロージャは、関数が戻ったときにリソースを解放しないスタック領域です。
簡単に言えば、JavaScript では内部関数の使用が許可されています。つまり、関数定義と関数式は別の関数の関数本体に配置されます。さらに、これらの内部関数は、すべてのローカル変数、パラメータ、およびそれらが存在する外部関数で宣言された他の内部関数にアクセスできます。
これらの内部関数の 1 つが、それらを含む外部関数の外側で呼び出されるときに、クロージャが形成されます。
function closure(){ var str = "I'm a part variable."; return function(){ alert(str); } } var fObj = closure(); fObj();
上記のコードでは、str は関数クロージャで定義されたローカル変数ですが、クロージャ関数の呼び出し完了後に str にアクセスできなくなった場合、関数の実行完了後に str が解放されます。
しかし、関数クロージャは内部関数を返し、返された関数は str 変数を参照するため、クロージャ関数の実行後に str が参照される可能性があるため、str によって占有されているリソースはリサイクルされません。このクロージャはクロージャを形成します。
関連する推奨事項: JavaScript 学習チュートリアル
以上がJavaScript がクロージャを形成するのはいつですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。