ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript はオブジェクトを作成できません

JavaScript はオブジェクトを作成できません

WBOY
WBOYオリジナル
2022-04-11 10:07:262388ブラウズ

JavaScript はオブジェクトを作成できます。作成方法: 1. Object を使用してオブジェクトを直接作成し、構文は「new Object()」です; 2. new キーワードを使用してオブジェクトを作成します、構文は「new object name()」です; 3. JSON を使用してオブジェクトを作成する場合、構文は「object={property" Name: 属性値,...}」です。

JavaScript はオブジェクトを作成できません

このチュートリアルの動作環境: Windows 10 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。

JavaScript はオブジェクトを作成できませんか?

JavaScript オブジェクトは、さまざまな値を保持できる変数です。これは、関連する値のセットのコンテナーとして機能します。たとえば、Web サイトのユーザーや銀行口座の請求書はすべて JavaScript オブジェクトにすることができます。

JavaScript では、オブジェクトにはプロパティとメソッドという 2 種類の値が含まれます。

JavaScript オブジェクトを作成するときは、その名前、プロパティ、メソッドを定義する必要があります。

JavaScript オブジェクトを作成する方法:

1. Object を使用してオブジェクトを直接作成します

var myObj=new Object();//使用Object类创建一个空的对象
 
myObj.name="wangshihcheng";
 
myObj.age=20;
 
myObj.infor=function(){
 
document.write("名字:"+this.name);//this.的指向问题
 
document.write("年龄:"+this.age);
 
}
 
myObj.infor();//调用创建的对象里面的方法;

2. new キーワードを使用してコンストラクターを呼び出し、オブジェクトを作成します。

コードは次のとおりです:

<script>
    var obj = new Object();
    obj.name = "Kitty";//为对象增加属性
    obj.age = 21;
    obj.showName = function () {//为对象添加方法
        console.log(this.name);
    };
    obj.showAge = function(){
        console.log(this.age);
    };
    obj.showName();
    obj.showAge();
</script>

このメソッドは、new キーワードを使用してオブジェクトを生成し、動的言語であるJavaScriptの特性に応じた属性とオブジェクトを構築するメソッド。 this は、メソッドが呼び出されるオブジェクトを表します。

この方法の問題は、オブジェクトを複数回作成する必要がある場合、コードを複数回繰り返す必要があり、コードの再利用に役立たないことです。

3. プロトタイプ モードを使用してオブジェクトを作成する

JavaScript では、各関数にプロトタイプ属性があり、これは

# と呼ばれるオブジェクトを指すポインターです。 ##プロトタイプ オブジェクト。プロトタイプ オブジェクトには、特定の型のすべてのインスタンス オブジェクトで共有できるプロパティとメソッドが含まれています。

さらに、このオブジェクトには、コンストラクター メソッドを指す組み込みの属性コンストラクターがあります。オブジェクトの作成;

プロトタイプ パターンを使用すると、すべてのインスタンスがプロトタイプ オブジェクトのプロパティとメソッドを共有できるため、オブジェクトのインスタンス情報を定義する必要がありません。コンストラクター内;

function Student(){
        
 
}
Student.prototype.name="wang";
Student.prototype.sex="man";
Student.prototype.class="5";
Student.prototype.sayName=function(){
    console.log(this.name);
}
 
var s1=new Student();
s1.sayName();//wang
 
var s2=new Student();
s2.sayName();//wang
 
s2.name="shicheng";
s2.sayName();//shicheng

オブジェクトのプロパティを読み取るとき、検索が実行されます。検索は最初にオブジェクト インスタンス自体から開始されます。

プロパティがインスタンス内で見つかった場合, 検索が終了し、プロパティの値が返されます。;

インスタンスで見つからない場合は、オブジェクトのプロトタイプ オブジェクトまで拡張し続け、オブジェクトのプロトタイプ オブジェクトを検索します。# の場合

## は、プロトタイプでこの属性を見つけ、プロトタイプの対応する属性を返します。値が見つからない場合は、undefine が返されます。

##したがって、インスタンス オブジェクトのプロパティが、プロトタイプ オブジェクトのプロパティ;

4. JSON を使用してオブジェクトを作成します

//object={属性名 1: 属性値 1、属性名 2: 属性値2,...}

//JOSN 形式の属性名は二重引用符を追加する必要があることに注意してください;

var p={
 
"name":"wangsch",
 
"gender":"man",
 
"age":40,
 
"son":[
 
    {
 
        "name":"son1",
 
        "age":2
 
    },
 
    {
 
    "name":"son2",
 
    "age":5
 
    }
 
],
 
"infor":function(){
 
document.write("父亲的姓名:"+this.name+",父亲的年龄:"+this.age+"<br>");
 
for( var child in this.son ){
 
document.write("儿子的姓名:"+this.son[child].name+",儿子的年龄:"+this.son[child].age+"<br>");
 
                }
 
        }
 
}
 
p.infor();//调用对象p中的infor方法

5. コンストラクターとプロトタイプ パターンの組み合わせを使用してオブジェクトを作成します

コンストラクターはインスタンスの属性を定義するために使用され、プロトタイプ パターンはメソッドと共有属性を定義するために使用されます。

function Student(name,sex,grade){
    this.name=name;
    this.sex=sex;
    this.grade=grade;
}
 
Student.prototype.sayName=function(){
    console.log(this.name);
}
 
Student.prototype.school="nongda";
この混合モードは受け渡しをサポートできます。パラメータをコンストラクタに追加し、メモリも大幅に節約します。


6. 動的プロトタイプ メソッドを使用してオブジェクトを作成します。

コードは次のとおりです。

<script>
    function Person(name,age){
        this.name = name;
        this.age = age;
        this.array = new Array("Kitty","luo");
        //如果Person对象中_initialized 为undefined,表明还没有为Person的原型添加方法
        if(typeof Person._initialized  == "undefined"){
            Person.prototype.showName = function () {
                console.log(this.name);
            };
            Person.prototype.showArray = function () {
                console.log(this.array);
            };
            Person._initialized = true;
        }
    }
  
    var obj1 = new Person("Kitty",21);
    var obj2 = new Person("luo",22);
    obj1.array.push("Wendy");//向obj1的array属性添加一个元素
  
    obj1.showArray();//Kitty,luo,Wendy
    obj1.showName();//Kitty
    obj2.showArray();//Kitty,luo
    obj2.showName();//luo
</script>
このメソッドは、コンストラクター/プロトタイプ メソッドに似ています。コンストラクターにメソッドを追加し、コンストラクター person に属性を追加するだけで、if ステートメントは 1 回だけ正常に実行できるようになります。実際のアプリケーションでは、最も広く使用されているコンストラクター/プロトタイプ メソッドが使用されます。動的プロトタイプ メソッドも人気があり、機能的にはコンストラクター/プロトタイプ メソッドと同等です。コンストラクターとプロトタイプ メソッドを単独で使用しないでください。

【関連する推奨事項:

JavaScript ビデオ チュートリアル

Web フロントエンド

]

以上がJavaScript はオブジェクトを作成できませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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