オブジェクトを作成するためのjs、いくつかの方法(工場出荷時のモード、コンストラクタモード、Prototypeパターン)

オブジェクトを作成するための一般的な方法

そこ OBJ = {
名前:
sayname:関数(){
警告(この.nameの);
}
}

 OBJ1 = {
名前:砂の僧
sayname:関数(){
警告(この.nameの);
}
}

 OBJ2 = {
名前:猿王
sayname:関数(){
警告(この.nameの);
}
}
obj.sayname()
obj1.sayname()
obj2.sayname()

ファクトリメソッドを使用してオブジェクトを作成します。

大量のは、この方法で新しいオブジェクトを作成することができます

関数REN(名前、性別)Personオブジェクトは、受信したパラメータに応じて、必要なすべての情報が含まれて構築することができます。私たちは、この関数に数え切れないほどの時間を呼び出すことができ、その都度、それは方法の3つの属性を含むオブジェクトを返します。工場モデルは、オブジェクトのような創造\複数の問題を解決しますが、それは(オブジェクトの種類を知る方法、である)物体認識の問題を解決しません。 

  主要好处就是可以消除对象间的耦合,通过使用工程方法而不是new关键字。将所有实例化的代码集中在一个位置防止代码重复。

  工厂模式解决了重复实例化的问题 ,但还有一个问题,那就是识别问题,因为根本无法 搞清楚他们到底是哪个对象的实例

関数REN(名前、性別){
 VARの DX = 新しいオブジェクト();
dx.name = 名前、
dx.gender = 性別、
dx.sayname = 関数(){
console.log(この.nameの)
}。00                           
リターンDX。
}
VAR A = REN(" "" M " 
a.sayname()

コンストラクタ

ファクトリメソッドを使用してオブジェクトを作成し、コンストラクタはオブジェクトである
オブジェクトは、オブジェクトのこのタイプを作成することですので、
私たちはここにコンストラクタの話オブジェクトのいくつかの異なるタイプを区別することは不可能である
コンストラクタを作成するためには、通常の関数です、関数を作成し、通常の方法では、コンストラクタは、最初の文字を大文字にするために使用されていることを除いて、違いはありません
コンストラクタと正常な機能の違いを通常の関数が直接呼び出され、さまざまな方法で機能を呼び出すことですが、コンストラクタ新しいキー迷惑使用使用する必要
コンストラクタ実行フローは
すぐに新しいオブジェクトを作成1.
2.新しいオブジェクトがこの機能に設定され、このコンストラクタに新しいオブジェクトを参照するために使用することができる
3ラインによってコード行の機能
4.新しいオブジェクトを復帰への戻り値として

機能人(名前){
 この .nameの= 名前、
 この .sayname = 楽しいです

}
関数fun(){
console.log(この.nameの);
}
VAR =あたりの新しい新しい人(" カイ" ;)
 VAR PER1 = 新しい新しい人(" カイ" );
 VAR Per2の= 新しい新しい人(" カイ" )。
console.log(パー)。
console.log(PER1)。
console.log(PER2)。

 

 

 

 

 

 

おすすめ

転載: www.cnblogs.com/niuyaomin/p/12007358.html