静的動的メンバー
オブジェクト指向に関連する概念を使用して、js でのオブジェクト指向の模倣を説明しましょう。他の言語とは異なり、js にはオブジェクト指向言語の関連機能がありませんが、いくつかの方法でオブジェクト指向を模倣できます。テクニック。 JavaScript のこれらの側面をオブジェクト指向の概念として概説するために、同じ概念を使用します。これらは同様に動作するためです。
js には次の関数があります
function test(){
var var_value;
this.this_value;
}
このうち、var_value は静的メンバーであり、 this_value は動的メンバーです。
静的メンバーはクラス自体に関連付けられており、クラス レベルでのみ呼び出すことができます。この特徴は、インスタンス化されたオブジェクトのメモリに var_value のコピーが 1 つだけ保持され、メモリをあまり占有しないことです。しかし、継承の観点から導出すると問題が発生し、導出できないという欠点もあります。したがって、サブクラスを派生する場合は、このメソッドを使用しないでください。
オブジェクトに関連付けられた動的メンバー。このアプローチはオープンドアアプローチと呼ばれます。このクラスの各オブジェクトには、メモリ内にプロパティとメソッドのコピーが存在します。つまり、インスタンス化されたオブジェクトと同じ数のメモリ コピーが存在します。効率という点では決して良いことではありませんが、実用化の可能性は比較的高いです。大量のメモリを消費しますが、いくつかのテクニックを使用してメモリのオーバーヘッドをできるだけ減らすこともできます。
今のところ話すのはこれだけです。少し時間があるかもしれません。ただし、今後のエッセイでは、より深い分析のためにさらに多くの例が結合される予定です。
情報のカプセル化と隠蔽
簡単に言えば、情報の処理方法です。隠蔽することが目的であり、カプセル化はその目的を達成するために使用されるテクノロジーです。カプセル化は、オブジェクト内のデータ表現と実装の詳細を隠すことと定義できます。上記のメンバー問題も、これらのメンバーを使用してカプセル化する方法です。
カプセル化の一般的に使用される基礎は、スコープ、入れ子関数、クロージャです。これらの概念は重複しているため、目的を達成するには一緒に使用する必要があります。具体的にどのようにカプセル化するかについては、今後のエッセイでより詳細な分析のために組み合わせて説明するのは困難です。
カプセル化の利点は、内部データの整合性とロジックを維持し、変数に制限と制約を課すことです。モジュール間の結合を弱めます。
欠点は、他の言語とは異なり、js でカプセル化を実装するのが難しいため、カプセル化された js コードのほとんどが複雑であることです。これは JS の柔軟性の諸刃の剣でもあります。また、カプセル化されたコードをデバッグすることも難しくなり、スコープの処理により多くの時間が必要となり、強力なデバッグ ツールに依存します。プログラムがデザインパターンを使用している場合、特定のパターンに慣れていないプログラマにとっては理解することが困難になります。これには、適切なコード コメントまたはドキュメントの助けが必要です。