1. オブジェクト指向プログラミング
1. プロセス指向とオブジェクト指向
## 1) プロセス指向: 問題を解決するためのプロセス ステップに焦点を当てる プログラミングの特徴は、プロセスの各ステップが関数によって実装されることです。クラスとオブジェクトの概念。 2) オブジェクト指向: どのオブジェクトが問題を解決するかに焦点を当てる プログラミングの特徴は、クラスが出現し、クラスからオブジェクトが取得され、そのオブジェクトが特定の問題を解決することです。 呼び出し元にとって、プロセス指向では、呼び出し元がさまざまな関数を自分で実装する必要があります。オブジェクト指向では、呼び出し元がオブジェクト内の特定のメソッドの機能を理解することのみが必要ですが、メソッドの実装の詳細を理解する必要はありません。2. オブジェクト指向の 3 つの主要な特徴
オブジェクト指向の 3 つの主要な特徴は、継承、カプセル化、ポリモーフィズムです。 JS は継承とカプセル化をシミュレートできますが、ポリモーフィズムをシミュレートできないため、JS は従来の意味でのオブジェクト指向言語ではなく、オブジェクトベース言語です。#3. クラスとオブジェクトの関係
## 1) クラスは抽象、オブジェクトは具象です (クラスは(オブジェクトの抽象化であり、オブジェクトはクラスの具象化です)
2) クラスは抽象的な概念です。クラスには属性とメソッドがあるとしか言えませんが、実際には属性とメソッドを持つことはできません。特定の属性が割り当てられます。たとえば、人間には名前がありますが、その名前が何であるかを言うことはできません。
pt オブジェクトの作成メソッド1.var obj = {}//単純オブジェクト plainObjectオブジェクト リテラル/オブジェクト直接量
2. コンストラクター (機能: キャメル ケース命名規則)
1) システム独自のコンストラクター
var obj = new Object();/ /var object = {}
2) カスタム関数のカプセル化
// 関数にパラメーターを追加することによってのみ関数をカスタマイズでき、関数内の対応する関数を変更できます。任意 オブジェクトを生成するとき、パラメーター データは新しいオブジェクトである必要があります
function Car(color){ this.color=color; this.name = "BMW"; this.height = "1400"; this.lang = "4900"; this.weight = 1000; this.health = 100; this.run = function(){ this.health -- ; } }
var car = new Car("red");
3. オブジェクト コンストラクターの内部原理の 3 つのステップ
1) 関数本体の先頭に暗黙的にオブジェクトを追加します: var this = {}
2) 関数本体の内容を実行します
3) 暗黙的にこのオブジェクト
##3. パッケージング クラス
1. 元の値にプロパティやメソッドを持つことは不可能です(未定義、null、数値、ブール値、文字列)
2. 一部の元の値は、パッケージング クラスを通過した後に呼び出すことができます。 var num=123;//オブジェクトではありません var num1=new Number(123);//オブジェクトです3. 暗黙的なパッケージ化クラスのプロセスは次のとおりですvar num = 4; num.len = 3;//隐式发生转换,新建一个数字对象,然后添加属性并赋值,最后删除这个对象,所以在执行过程中没有报错 console.log(num.len);//再新建一个数字对象,添加属性,所以最后输出为undefined var str="abcd"; str.length=2; console.log(str.length); //输出为4,在输出时原始值str包装类之后输出的为new String('abcd').length,字符串自带length属性,所以输出长度为4
"JS チュートリアル"
以上がjsオブジェクト指向プログラミングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。