クロージャ、シンボル、WeakMap、クラスのプライベート フィールド、およびプロキシは、JavaScript でプライベート変数を作成するために使用できるテクニックの一部です。各テクノロジーには長所と短所があるため、要件に最も適したものを選択することが重要です。
他の多くのプログラミング言語と同様、JavaScript にもプライベート変数とパブリック変数の概念があります。プライベート変数は同じスコープに属するコードからのみアクセスおよび変更できますが、パブリック変数はどのコードからもアクセスおよび変更できます。 JavaScript でプライベート変数を作成するためのさまざまな手法を見てみましょう。
クロージャー メソッドは、JavaScript でプライベート変数を作成する方法です。親関数が完了して戻った後でも、親関数のスコープ内で定義された変数にアクセスできる場合、その関数はクロージャです。関数内で変数を定義すると、変数がプライベートになり、その関数内のコードからのみアクセスできるようになります。 ######例###### ### リーリー
上の例の関数getValue
およびsetValue を使用してオブジェクトを返します。これらのメソッドは、親関数で宣言された privateVariable にアクセスできるため、その値を取得または変更できます。関数外から privateVariable にアクセスしようとすると参照エラーが発生します。 シンボリック データ型を使用する シンボリック データ型の使用は、プライベート変数を作成する 2 番目の方法です。シンボルは個別の非文字列識別子であるため、プロパティ キーとして使用できます。これらは一意であるため、外部プログラムが簡単にアクセスしたり変更したりすることはできません。 リーリー
例上記のコードは次のように使用できます -リーリー
この例では、privateVariable という名前のシンボルが定義され、オブジェクトのプロパティ キーとして使用されています。これはシンボルであるため、ドット表記を使用してプロパティの値を取得することはできませんが、角括弧表記を使用してオブジェクトを通じてアクセスできます。WeakMaps は、プライベート変数を構築する 3 番目の方法として使用できます。 JavaScript エンジンは WeakMap 内のキーと値のペアを弱く参照するだけで、オブジェクトをキーにリンクできます。これにより、キーへの参照が他にない場合、ガベージ コレクターがキーと値のペアを破棄するため、プライベート変数への参照を誤って維持することが困難になります。 ######例###### ### リーリー
この例では、オブジェクトのプライベート変数を保存するために、privateVariables という名前の WeakMap を作成します。 get() メソッドは、set() メソッドを使用してプライベート変数をオブジェクトにリンクした後、プライベート変数を取得するために使用されます。ただし、プライベート変数には、オブジェクトへの参照がある場合にのみアクセスできるため、オブジェクトによって形成されるスコープの外部からアクセスすることはできません。
オブジェクト指向クラス構文の使用は、プライベート変数の作成にも使用できます。 JavaScript の class キーワードを使用すると、オブジェクトのテンプレートとして機能するクラスを定義できます。クラスは変数を定義し、変数名の前に # 記号を追加してプライベート変数を生成できます。これは実験的な機能であり、プライベート変数を表します。この機能はまだ広くサポートされていないため、実稼働コードで使用することはお勧めできません。 ######例###### ### リーリー
この例では、#privateVariable、getValue、および setValue
を使用して構築されます。クラス内のメソッドのみがアクセスできるプライベート変数にクラス外のメソッドがアクセスしようとすると、参照エラーが発生します。プロキシ オブジェクトを使用する
この例では、ゲッター メソッドとセッター メソッドを備えたハンドラーを備えたプロキシが構築されています。これらのメソッドは、プロキシの外部で定義されたプライベート変数の値を取得または変更し、それにアクセスできます。ただし、参照エラーにより、プロキシの外部からプライベート変数にアクセスできなくなります。
以上がJavaScript でプライベート変数を作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。