js でオブジェクトを作成する方法は数多くあります。それぞれの方法には独自の長所と短所があるため、オブジェクトを作成する適切な方法を選択することが非常に重要です。次のコンテンツでは、js でオブジェクトを作成するいくつかの方法を紹介します。
1. ファクトリパターン
function createPerson(name){ //1、原料 var obj=new Object(); //2、加工 obj.name=name; obj.showName=function(){ alert(this.name); } //3、出场 return obj; } var p1=createPerson('小米'); p1.showName();
利点: 類似したオブジェクトを作成する問題を解決する
欠点: オブジェクトの型を知ることができない
2. コンストラクター
function CreatePerson(name){ this.name=name; this.showName=function(){ alert(this.name); } } var p1=new CreatePerson('小米');
利点: 一部のインスタンスを 1 つとして表現できる特定の型
欠点: 各インスタンスでメソッドが何度も再作成されます
3. プロトタイプ
function Person(){} Person.prototype.name="小米"; Person.prototype.showName=function(){ alert(this.name); } var p1=new Person(); p1.showName();
利点: プロパティとメソッドがプロトタイプで定義されるため、各インスタンスはプロパティとメソッドを共有できます
欠点: インスタンスの属性をプライベートにすることはできません
4. ハイブリッド (コンストラクター + プロトタイプ)
function CreatePerson(name){ this.name=name; } Create.prototype.showName=function(){ alert(this.name); } var p1=new CreatePerson('小米'); p1.showName(); var p2=new CreatePerson('小米'); p2.showName(); alert(p1.showName==p2.showName);//true;原因:都是在原型下面,在内存中只存在一份,地址相同
コンストラクターは属性の定義に使用され、プロトタイプはメソッドと共有属性の定義に使用されます。
5. リテラル
person={ name:"小米", age:23 };
関連する推奨事項:
以上がjsによるオブジェクトの作成方法とその特徴の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。