オブジェクト指向プログラミング(1)

1つは、オブジェクト指向プログラミングの概念です。

オブジェクト指向プログラミング(OOP)は、現在の主流のプログラミングモデルです。実世界のさまざまな複雑な関係をオブジェクトに抽象化し、分業とオブジェクト間の連携により、実世界のシミュレーションを完了します。
各オブジェクトは、明確な分業を備えた機能センターであり、情報の受信、データの処理、情報の送信などのタスクを完了し、再利用でき、継承メカニズムを介してカスタマイズすることもできます。したがって、オブジェクト指向プログラミングには、柔軟性、コードの再利用性、および高いモジュール性という特徴があります。複数の人が協力する大規模なソフトウェアプロジェクトに適しています。

第二に、コンストラクター

js言語オブジェクトシステムは、コンストラクター(コンストラクター)とプロトタイプチェーン(プロトタイプ)に基づいています。コンストラクターは、インスタンスを生成するために特別に使用されるテンプレートであり、オブジェクトのテンプレートであり、サンプルオブジェクトの構造を記述します。通常の機能と区別するために、最初の文字は大文字になります。
さらに、コンストラクターには2つの特徴があります。1。コンストラクターはthisキーワードを使用します。これは、生成されるオブジェクトインスタンスを表します。2。オブジェクトを生成するときは、新しいコマンドを使用する必要があります。
コード例
ここに画像の説明を挿入
newコマンドを使用する場合、その背後にある関数は一度に次の手順を実行します
。1。返されるインスタンスとして空のオブジェクトを作成します
。2 空のオブジェクトのプロトタイプをコンストラクターのprototypeプロパティにポイントします。
3.関数内の関数に空のオブジェクトを割り当てます。このキーワード
4.
コンストラクター内のコードの実行を開始します。つまりコンストラクター内のこれは空のオブジェクトを参照し、これのすべての操作は実際にはコンストラクター
内にreturnがあり、returnの後にオブジェクトが続く場合、newコマンドはreturnの後に指定されたオブジェクトを返します。それ以外の場合、returnを無視して、このオブジェクトを返します。
コード例
ここに画像の説明を挿入
注:関数が現在の関数に新しい、新しい目標点によって呼び出される場合、関数は、関数が使用されているか否かを決定するために使用することができ、そうでない場合は定義されていない、新たなターゲットを使用することができる新規。
例:
ここに画像の説明を挿入
ザ・Object.create()の使用法
既存のオブジェクトを使用して新しいインスタンスオブジェクトを生成する

ここに画像の説明を挿入

三、このキーワードの理解

これが返すのは常にオブジェクトです。簡単に言えば、これはプロパティとメソッドが現在配置されているオブジェクトです。このポイントは変数です。関数が変数に割り当てられている限り、このポイントは変わります。これの
該当する場合:グローバル環境(これはウィンドウを参照します)、コンストラクター(これはインスタンスオブジェクトを参照します)、オブジェクトメソッド、この割り当てのポイントが変更されます。
使用する場合の注意:
1。これをネストする複数のレベルを避けます
2.コールバック関数で
これを使用しないでください3.
これを配列メソッド呼び出し、適用、バインドにバインドするためにこれを使用しないでください

第四に、プロトタイプ(プロトタイプ)の理解

コンストラクターの欠点の1つは、オブジェクトによってインスタンス化された複数のオブジェクト間でプロパティを共有できないことですが、プロトタイプはコンストラクターのプロトタイプオブジェクトのプロパティを操作することでこの問題を解決できます。プロトタイプオブジェクトのすべてのプロパティとメソッドは、インスタンスで共有できます。 。これにより、複数のインスタンス間の接続が増加し、メモリが節約されます

ここに画像の説明を挿入

5、プロトタイプチェーンの理解

すべてのオブジェクトには独自のプロトタイプオブジェクトがあり、各オブジェクトには別のオブジェクトとして機能できるプロトタイプオブジェクトがあります。オブジェクトからプロトタイプ、そしてプロトタイプのプロトタイプまで、継続によってプロトタイプチェーン(プロトタイプチェーン)が形成され
ます。 Object.prototypeまでさかのぼると、Object.prototypeのプロトタイプはnullであるため、プロトタイプチェーンの終わりはnullになります。
ここに画像の説明を挿入

注:Object.getPrototypeOf()は、パラメーターオブジェクトのプロトタイプを返すことができます。オブジェクト
の特定のプロパティを読み取るとき、jsは最初に独自のプロパティを検索し、そうでない場合は、プロトタイプオブジェクトのプロパティにトレースバックします。プロトタイプのプロトタイプがレイヤーごとに検索されます。最上位のプロトタイプがnullであることが判明し、nullの属性が定義されていない場合、戻り値は定義されません。属性の検索レベルが高いほど、より大きくなります。パフォーマンスへの影響存在しないものがある場合、プロパティはプロトタイプチェーン全体をトラバースします

六、コンストラクターと不作為

コンストラクターはプロトタイプの属性です。デフォルトはプロトタイプのコンストラクターです。その機能は、どのコンストラクターがインスタンスオブジェクトを生成したかを知ることです。
例の
ここに画像の説明を挿入
constructor.nameは、プロトタイプオブジェクトの名前を直接返すことができ
ここに画像の説明を挿入
ます。instanceof演算子はブール値を返します。オブジェクトはコンストラクター関数のインスタンスです
ここに画像の説明を挿入
上記の記述は同等です
ここに画像の説明を挿入
が、instaceofの左側がインスタンス化オブジェクト、右側がプロトタイプオブジェクト、prototype.isPrototype()の左側がインスタンス化オブジェクトであることに注意してください。プロトタイプオブジェクトであり、パラメータはインスタンス化オブジェクト
instanceofです。これは、次の
ようなオブジェクトのタイプを決定するためによく使用されます。
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/qq_40969782/article/details/115318789