ホームページ  >  記事  >  ウェブフロントエンド  >  JS でオブジェクトを作成するいくつかの方法を共有する

JS でオブジェクトを作成するいくつかの方法を共有する

小云云
小云云オリジナル
2018-03-13 18:04:211429ブラウズ

この記事では主に JS でオブジェクトを作成するいくつかの方法を紹介します。お役に立てれば幸いです。

1. ネイティブ コンストラクターを使用して、特定の型のオブジェクトを作成します

  var person =new Object();
    person.name="wangwu";
    person.age="20";
    person.sayName=function(){
    alert(this.name);
}

2. オブジェクト リテラルを使用します

var person = {
    name:"wangwu",
    age:"20",
    sayName: function(){
        alert(this.name);
    }
}

概要: どちらの方法も単一のオブジェクトを作成するために使用できますが、多数のオブジェクトを作成する場合には明らかな欠点があります。同じインターフェイスを持つオブジェクトでは、大量の重複コードが生成されます。

3. ファクトリ パターンを使用する

function createPerson(name,age){
    var o=new Object();
    o.name=name;
    o.age=age;
    o.sayName=function(){
            alert(this.name);
    };
    return o;
}
var person1=createPerson("wangwu",20);

特定のオブジェクトを作成するプロセスを抽象化し、関数を発明し、その関数を使用して、特定のインターフェイスでオブジェクトを作成する詳細をカプセル化します。

4. コンストラクター パターン

function  Person(name,age){
    this.name=name;
    this.age=age;
    this.sayName=function(){
        alert(this.name);
    };
}
var person1=new Person("wangwu",20);

カスタム オブジェクト タイプのプロパティとメソッドを定義するカスタム コンストラクターを作成します。

5. プロトタイプ パターン

function Person(){
}
Person.prototype.name="wangwu";
Person.prototype.age=20;
Person.prototype.sayName=function(){
    alert(this.name);
}
var person1=new Person();
person1.sayName(); //wangwu

作成するすべての関数にはプロトタイプ属性があり、この属性はオブジェクトを指すポインターであり、このオブジェクトの目的は、特定の型で表現できるすべてのインスタンスを含めることです。共有プロパティとメソッド。プロトタイプ パターンの欠点は、初期化パラメータをコンストラクターに渡すステップが省略されることです。その結果、すべてのインスタンスがデフォルトで同じ属性値を取得します。参照型の値の場合、問題はさらに顕著になります。

6. コンストラクターパターンとプロトタイプパターンの併用

function Person(name,age){
    this.name=name;
    this.age=age;
    this.friends=["wangwu","zhangsan"];
}
Person.prototype={
    constructor:Person,
    sayName:function(){
        alert(this.name);
    }
}
var person1=new Person("wangwu",20);
var person2=new Person("zhangsan",23);
person1.friends.push("lisi");
alert(person1.friends); //"wangwu,zhangsan,lisi"
alert(person2.friends); //"wangwu,zhangsan"

7. 動的プロトタイプパターン

  function Person(name,age,job){
        //属性
    this.name=name;
    this.age=age;
    this.job=job;
//方法
if(typeof this.sayName!="function"){
    person.prototype.sayName=function(){
            alert(this.name);
    };
}
}
var  friend=new Person("wangwu",20);
friends.sayName();

9. 安全なコンストラクターパターン

function Person(name,age){
    var 0=new Object();
    o.name="wangwu";
    o.age=20;
    o.sayName=function(){
        alert(this.name);
    };
    return o;
}
var friend=new Person("wangwu",20);
friend.sayName(); //"wangwu"

関連の推奨:

jsでオブジェクトを作成する方法のまとめ(サンプルコード)

Jsでオブジェクトを作成するいくつかの方法

jsでオブジェクトを作成するいくつかの一般的な方法のまとめ(推奨)_jsオブジェクト指向

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

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