ホームページ > 記事 > ウェブフロントエンド > JavaScript オブジェクト指向の基本とこの問題点を理解する方法
はじめに
私たちのプログラミング言語は、「マシン指向」から「プロセス指向」、そして「オブジェクト指向」へのプロセスを経てきました。 JavaScript は、プロセス指向とオブジェクト指向の中間のオブジェクトベースの言語です。 JavaScript を学習するプロセスにおいて、OOP は非常に重要な部分です。JS におけるオブジェクト指向のアプローチについて説明しましょう。 ! !
1. OOPの基本的な問題 |
プロセス指向: 問題を解決する方法のプロセスステップに焦点を当てます。プログラミングの特徴は、クラスやオブジェクトの概念を持たず、処理の各ステップを一つ一つ関数で実装することです。
オブジェクト指向: どのオブジェクトが問題を解決するかに焦点を当てます。プログラミングの特徴は、クラスが次々と現れ、そのクラスからオブジェクトを取得して特定の問題を解決することです。
呼び出し元にとって、プロセス指向では、呼び出し元がさまざまな関数を自分で実装する必要があります。一方、オブジェクト指向では、呼び出し元がメソッドの実装の詳細を理解する必要がなく、オブジェクト内の特定のメソッドの機能を呼び出し元に伝えるだけで済みます。
継承、カプセル化、ポリモーフィズム
① カテゴリ : 同じ特性 (プロパティ) と動作 (メソッド) を持つクラスのコレクション。
例:人間→属性:身長、体重、性別メソッド:食べる、話す、歩く
② オブジェクト:クラスから、特定の属性値を持つ個体を取り出すと方法。
例: Zhang San --> 属性: 身長 180、体重 180 メソッド: Talk --> 私の名前は Zhang San、身長 180 です
③ クラスとオブジェクトの関係
クラス それは抽象的であり、オブジェクトは具体的です(クラスはオブジェクトの抽象化であり、オブジェクトはクラスの具体化です)
説明:
クラスは抽象的な概念であるとしか言えません。クラスには属性とメソッドがありますが、属性に特定の値を割り当てることはできません。たとえば、人間には名前がありますが、その名前が何であるかを言うことはできません。 。 。
オブジェクトは特定のインスタンス、つまりクラス内の属性に特定の値を割り当てる個体です。たとえば、張三が一人の人間である場合、張三の名前は張三であると言えます。つまり、張三は人間の各属性に特定の割り当てを行っているため、張三は人間によって生成されたオブジェクトです。
2. JavaScript のオブジェクト指向 |
①クラス(コンストラクター)を作成します:クラス名は必ず指定してくださいCamelCase を使用します。つまり、各単語の最初の文字を大文字にする必要があります。
1 function 类名(属性1){ 2 this.属性1 = 属性1; 3 this.方法 = function(){ 4 //方法中要调用自身属性,必须要使用this.属性 5 } 6 }
② クラスを通じてオブジェクトをインスタンス化(新規)します。
var obj = new 类名(属性1的具体值); obj.属性; 调用属性 obj.方法(); 调用方法
③注意事項
>>>クラス名を通じてオブジェクトを作成するプロセスを「クラスのインスタンス化」と呼びます
>>>クラス内のこれはインスタンス化されると、新しく作成されたオブジェクトを指します。したがって、this.property と this.method は実際に、新しく作成されるオブジェクトにプロパティとメソッドをバインドします。
>>>クラスで独自のプロパティを呼び出すには、this.property 名を使用する必要があります。変数名を直接使用すると、対応するプロパティにアクセスできません。
>>>クラス名はビッグキャメルケースルールを使用する必要があり、通常の関数との違いに注意してください。
①constructor: 現在のオブジェクトのコンストラクターを返します
>>>zhangsan.constructor =人;
②instanceof: オブジェクトがクラスのインスタンスであるかどうかを検出します
>>>lisiinstanceof Person √ lisi は新しい Person クラスを通じて作成されます>>> ;lisi オブジェクトのインスタンス √ すべてのオブジェクトはオブジェクトのインスタンスです
>>>オブジェクトのインスタンスインスタンス √ 関数自体もオブジェクトです
3. JavaScript におけるこの指摘の問題 |
以上がJavaScript オブジェクト指向の基本とこの問題点を理解する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。