最初のモード: ファクトリーモード
var lev=function(){
return "スクリプト ホーム";
function Parent(){
var Child = new Object(); name="スクリプト";
Child.lev=lev;
var x = 親(); alert(x.name);
alert(x.lev());
手順:
1. 関数内でオブジェクトを定義し、オブジェクトのさまざまなプロパティを定義します。属性はメソッドにすることができます。メソッド
2 を繰り返し作成することを避けるために、属性がメソッドである属性を関数の外部で定義することをお勧めします。 オブジェクトを参照するときは、var の代わりに var x = Parent() を使用します。 x = new Parent(); 後者は多くの問題を引き起こす可能性があるため (前者も古典的なファクトリ メソッドとなり、後者はハイブリッド ファクトリ メソッドと呼ばれます)、このオブジェクトを使用するために新しいメソッドを使用することはお勧めできません。 🎜> 3. 関数内で、最後にオブジェクトが返されます
4. この方法でオブジェクトを作成することはお勧めできませんが、
2 番目のモード: コンストラクター メソッド
を理解する必要があります。
コードをコピーします
コードは次のとおりです:
var x =new Parent();
alert(x.lev());
1. ファクトリメソッドと比較して、コンストラクターを使用します。関数的にオブジェクトを作成するには、関数内でオブジェクトを再作成する必要はありませんが、これを使用してオブジェクトを参照し、関数が明示的に返す必要はありません。
2. ファクトリ モードと同様に、属性の値をメソッドにすることはできますが、外部関数でメソッドを定義することをお勧めします。
3. 同様に、この方法でオブジェクトを作成することは推奨されません。
3 番目のモード: プロトタイプ モード
コードをコピー
コードは次のとおりです。次のように:
var lev=function(){
return "スクリプト ホーム"
} ;
function Parent(){ }; 🎜>Parent.prototype.name="ブルース・リー";
Parent.prototype.lev=lev; >alert(x.name); alert(x.lev()); 関数内で属性を定義しないでください2。属性を定義するためのプロトタイプ属性
3. 同様に、この方法でオブジェクトを作成することは推奨されません
4 番目のモード: 混合構築関数、プロトタイプ メソッド (推奨)
コードをコピー
コードは次のとおりです:
function Parent (){
this.name="script ";
this.age=4;
};
Parent.prototype.lev=function(){
return this.name;
};;
var x =new Parent();
alert(x.lev());
コードをコピーします
コードは次のとおりです。
function Parent(){
this.name=" Script"; 🎜>this.age=4;
if(typeof Parent._lev=="未定義"){
Parent.prototype.lev=function(){
return this.name ;
}
親._lev=true;
var x =new Parent(); 🎜>
コードをコピー
コードは次のとおりです:
if (typeof Parent._lev=="unknown"){
Parent._lev=true;}
これにより、オブジェクトのインスタンスを作成するときに、属性がメソッドは繰り返されません
3 を作成します。このモードを使用することをお勧めします