ホームページ > 記事 > ウェブフロントエンド > JavaScript デザイン パターンとプロトタイプ パターン (Object.create とプロトタイプ) の概要_JavaScript スキル
プロトタイプモードの説明
説明: プロトタイプ インスタンスを使用して、新しいカスタマイズ可能なオブジェクトをコピーして作成します。新しいオブジェクトの場合、元のオブジェクトを作成する特定のプロセスを知る必要はありません。
プロセス: プロトタイプ => 新しい ProtoExam => 新しいオブジェクトにクローンを作成します;関連するコードを使用します:
Return '個人情報、名前: ' this.name '、年齢: ' this.age '、性別: ' this.sex '
';
}
2 つ以上の個人情報コンテンツが必須になりました:
出力戻り値:
Object.create 命令
1>. 定義: プロトタイプ オブジェクトを指定でき、オプションのカスタム プロパティを含めることができるオブジェクトを作成します。 2> Object.create(proto [,properties]); 新しいオブジェクトのプロパティを構成するために使用されます。
1. プロトタイプ オブジェクト クラスを作成します:
コードをコピーします
コードは次のとおりです:
使用方法
1. ProtoClass.prototype;
を使用してオブジェクトを作成します。
2. インスタンス化された ProtoClass をプロトタイプとして使用します:
var obj2 = Object.create(proto, {
foo:{value:'obj2'}
});
obj2.aMethod() //プロトクラス
obj2.foo; //obj2
3. サブクラスの継承:
SubClass.prototype.subMethod = function() {
this.a を返す || this.foo;
}
このメソッドは ProtoClass の aMethod メソッドに継承して実行できます。
サブクラスが ProtoClass のメンバー属性を読み取れるようにするには、サブクラスを変更する必要があります:
//その他のコード;
このメソッドは ProtoClass;:
のメンバー属性とプロトタイプ メソッドを取得できます。もう 1 つの方法は、インスタンス化された ProtoClass オブジェクトを SubClass のプロトタイプとして使用することです。
関数 SubClass() {
}
SubClass.prototype = Object.create(proto, {
foo:{値: 'サブクラス'}
});
このようにして、SubClass がインスタンス化された後、ProtoClass のすべてのプロパティとプロトタイプ メソッドを取得し、読み取り専用のデータ属性 foo;
を作成できます。4. 別の作成継承メソッドは、インスタンス化された ProtoClass をプロトタイプとして使用する Object.create と同じ効果があります。
Object.create 関連の手順
Object.create は、新しいオブジェクトを作成するために使用されます。Object の場合、プロトタイプは null であり、関数は new Object() または {};
と同じです。
関数の場合、new FunctionName と同じ効果があります。
関数 func() {
This.a = 'func';
}
func.prototype.method = function() {
これを返します。a;
}
//[同じ効果]
と同等
var newfunc2 = Object.create(Object.prototype/*Function.prototype||function(){}*/, {
a: {値: 'func'、書き込み可能: true}、
メソッド: {value: function() {return this.a;} }
});
newfunc は関数 func() {...}、newfunc2 は関数 Function {Native}