1. クロージャとは何ですか?
したがって、クロージャを使用すると、データとそのデータを操作する関数を関連付けることができます。 例えば: 関数foo(){ a = 1 とします。 関数()を返す{ コンソールにログ出力します。 } } foo1 = foo() とします。 foo1() // 出力1 これはクロージャの例です。foo では関数が返されるため、この関数には foo の内部スコープ、つまり a をカバーするクロージャがあり、その結果 a は常に存続し、foo が終了してもリサイクルされません。 2. クロージャの役割2.1) メモリクロージャのメモリプロパティとは何ですか? クロージャが生成されると、関数が配置されている環境の状態は常にメモリ内に残り、外側の関数呼び出しが終了した後、ガベージ コレクション メカニズムによって回収されません。 例えば: 関数foo(){ a = 0 とします。 関数()を返す{ ++; コンソールにログ出力します。 } } foo1 = foo() とします。 foo2 = foo() とします。 foo1(); // 1 foo2(); // 1 foo2(); // 2 foo1(); // 2 a はクロージャの一部であるため、クロージャが生成されると、a の環境状態はメモリ内に保持され、外側の関数呼び出しが終了した後もクリアされません。そのため、foo1 が使用されると、メモリ内の a の値は 1 増加します。 2.2) プライベート変数のシミュレーション変数が指定された操作によってのみ操作可能であることを確認します。 例えば: 関数foo(){ A = 0 とします。 戻る { getA: 関数() { A を返します。 }, 追加:関数() { A++; }, del: 関数() { A --; } } } foo1 = foo() とします。 コンソール.log(foo1.getA()); // 0 foo1 を追加します。 コンソール.log(foo1.getA()); // 1 foo1.del(); コンソール.log(foo1.getA()); // 0 閉包により、A は指定された加算および減算演算のみを実行できることが保証されます。 3. 閉鎖に関する注意事項クロージャを乱用しないでください。乱用すると、メモリの過剰使用により Web ページのパフォーマンスに問題が発生し、メモリ リークが発生する可能性もあります。 要約するこの記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: offsetWidth、clientWidth、scrollWidth、scrollTop、scrollLeft などのプロパティの図。
>>: MySQL接続クエリにおけるととwhereの違いの簡単な分析
実稼働環境で Docker を使用する場合、多くの場合、データを複数のコンテナ間で永続化または共有す...
Linux には、マウントされたハードディスクとマウントされていないハードディスクの 2 種類のハー...
1. ゴミかクラシックか? Web テクノロジーは急速に更新されており、Web サイトのインターフェ...
概要: MySQL JDBC 抽出にはどのような方法を使用すればよいでしょうか? その方法を説明しま...
入力ファイルの HTML コントロールを Web ページに追加します。 <input id=&...
この記事では、テーブル切り替えプラグインを実装するためのJavaScriptのカプセル化コードを参考...
Centos マシンで docker のインストールが完了したら、docker info コマンドを...
目次1. プロトタイプとは何ですか? 2. プロトタイプ__プロト__ 4. コンストラクター5. ...
この記事の例は MySQL 5.0 以降で実行されます。ユーザー権限を付与するための MySQL コ...
目次1. 背景2. 前提条件https:証明書システム: 3. 操作プロセス3.1 証明書の生成3....
目次マッピングとは何かオブジェクトとマップの違いマップの共通メソッド宣言と初期化割り当てセットキー値...
トランザクション ログには、関連するデータベースに対する操作が記録され、データベースの回復に関連する...
基本概念現在の読み取りとスナップショットの読み取りMVCC では、読み取り操作はスナップショット読み...
1 QPS 計算 (1 秒あたりのクエリ数) MyISAMエンジンベースのDBの場合 MySQL&g...
Linux は一般的にサーバーとして使用され、サーバーは一般的にコンピュータルーム内に置かれます。L...