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

不言
リリース: 2018-07-17 15:10:23
オリジナル
1516 人が閲覧しました

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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!