私の知識の少なさと知識の少なさから、『Javascript Advanced Programming』から内容の一部を抜粋しました。これらは私の読書メモとも言えます。 Javascriptのオブジェクト指向の仕組みは非常に重要であり、内容も非常に広範囲に及ぶため、ここでは章に分けて一つずつ紹介していきます。
オブジェクトを使用するには、まずそれを宣言する必要があります (もちろん、組み込みオブジェクトの場合は必要ありません)。 Javascript は常に私たちの脳細胞を大量に死なせます。この記事では主に Javascript クラスを宣言するいくつかの方法について説明します。
ファクトリー モード
ファクトリー モードは、多くの開発者が使用するモードかもしれません。簡単に言うと、このメソッドは最初に「基盤」を定義し、それをさまざまな関数の上に投げます (バインディング)。そしてプロパティ。次のコードは非常に見覚えがあるかもしれません:
var oCar = 新しいオブジェクト;
oCar.color = "red";
oCar.showColor = function() {
alert(this.color)
oCar.showColor ();
もちろん、クラスにパッケージ化されているため、再利用する必要があります (上記のメソッドは構文的には単なる変数です)。特定のオブジェクトを返すファクトリ関数を使用してカプセル化できます:
function createCar() {
var oCar = 新しいオブジェクト;
oCar.showColor = function() {
alert(this.color) ;
}
return oCar;
}
oCar.showColor();
もちろん変更します, createCar 関数にいくつかのパラメーターを追加できます。これは非常にプロフェッショナルに見えます:
var oCar = new Object;
oCar.showColor = function() {
alert(this.color) ) ;
}
return oCar;
}
oCar.showColor();
人々は非常に奥深いものを感じますが、時には自分自身を混乱させることもあります。長さを考慮しない場合は、外部で定義できます:
コードをコピー
function createCar(sColor) {
var oCar = new Object; = sColor;
oCar.showColor = showColor;
を返す;
oCar();
これも実行してください 利点の 1 つは、oCar.showColor を繰り返し定義する必要がないことです (誰もが効率的なプログラムを好みます)。
コンストラクター パターン
コンストラクターは実際にはファクトリ メソッドに似ています。コード量の観点から見ると、コンストラクター内でオブジェクトが作成されないことを意味します。
コードをコピーします
コードは次のとおりです。 実際、この暗黙的なオブジェクトは new 後にインスタンス化されています。デフォルトでは、コンストラクターは this の値を返します (したがって return を使用する必要はありません)。ただし、コンストラクター パターンは、ファクトリ パターンと同様にメソッドを繰り返し定義する可能性があります。この点については、前述のファクトリ パターンを参照することで回避できます (常に不完全に見えます)。
プロトタイプ モード
定義の繰り返しの問題にはもう飽きたので、完璧な解決策はあるのでしょうか?もちろんあります。プロトタイプ手法を使用すると、このような問題を効果的に回避できます。
コードをコピー
コードは次のとおりです。
function Car() {}
Car.prototype .color = new Array("red", "green", "blue");