ホームページ  >  記事  >  ウェブフロントエンド  >  jsによるオブジェクトの作成方法とその特徴

jsによるオブジェクトの作成方法とその特徴

不言
不言オリジナル
2018-07-17 15:10:231539ブラウズ

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 を使用してオブジェクトを作成する方法の例

js オブジェクトを作成する複数の方法の詳細な説明

以上がjsによるオブジェクトの作成方法とその特徴の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。