JavaScript/object
object
[編集]object は、JavaScriptにおけるデータ型の一つで、プロパティの集合を持つ複雑なデータ構造を表します。オブジェクトは、キーと値のペア(プロパティ)を保持し、これにより異なるデータを一つの構造にまとめることができます。JavaScriptでは、オブジェクトは非常に柔軟で、様々な用途に使用されます。
基本構文
[編集]// オブジェクトリテラルの例constperson={name:"John",// プロパティ: name, 値: "John"age:30,// プロパティ: age, 値: 30greet(){console.log("Hello, "+this.name);}};
オブジェクトの作成方法
[編集]JavaScriptでは、オブジェクトをいくつかの方法で作成できます。
オブジェクトリテラル
[編集]最も一般的な方法は、オブジェクトリテラルを使用してオブジェクトを定義する方法です。
constcar={make:"Toyota",model:"Corolla",year:2020};
new Object()
[編集]new Object()
を使ってオブジェクトを作成することもできますが、オブジェクトリテラルの方が一般的で簡潔です。
constobj=newObject();obj.name="Alice";obj.age=25;
Object.create()
を使うと、指定したオブジェクトをプロトタイプとして持つ新しいオブジェクトを作成できます。
constanimal={speak(){console.log("Animal sound");}};constdog=Object.create(animal);dog.speak();// "Animal sound" と出力される
オブジェクトのプロパティ
[編集]オブジェクトは、キーと値のペアである「プロパティ」を持っています。プロパティにアクセスする方法には、ドット記法とブラケット記法の2つの主な方法があります。
ドット記法
[編集]constperson={name:"John",age:30};console.log(person.name);// "John"
ブラケット記法
[編集]ブラケット記法を使うと、キーに変数やスペースを含めることができます。
constperson={"first name":"John","last name":"Doe"};console.log(person["first name"]);// "John"
オブジェクトのメソッド
[編集]オブジェクトは、プロパティとして関数を持つこともできます。これらの関数は「メソッド」と呼ばれます。
constperson={name:"John",greet(){console.log("Hello, "+this.name);}};person.greet();// "Hello, John" と出力される
プロトタイプと継承
[編集]JavaScriptでは、オブジェクトはプロトタイプチェーンを通じて他のオブジェクトからプロパティを継承することができます。新しいオブジェクトを作成する際、Object.create()
を使って、指定したオブジェクトをプロトタイプとして設定することができます。
constanimal={speak(){console.log("Animal sound");}};constdog=Object.create(animal);dog.speak();// "Animal sound" と出力される
Object.create(null)
を使うことで、プロトタイプが null
のオブジェクトを作成できます。これにより、オブジェクトは Object.prototype
のメソッドを持たなくなります。
constobj=Object.create(null);console.log(Object.getPrototypeOf(obj));// null
特徴
[編集]- 動的: オブジェクトは動的にプロパティを追加したり削除したりすることができます。
- 参照型: オブジェクトは参照型であり、変数に代入すると、その変数はオブジェクトを参照します。
constperson1={name:"John"};constperson2=person1;person2.name="Alice";console.log(person1.name);// "Alice" と出力される
オブジェクトのメソッド
[編集]オブジェクトには多くの組み込みメソッドが提供されています。例えば、Object.keys()
や Object.values()
などです。
constperson={name:"John",age:30};console.log(Object.keys(person));// ["name", "age"]console.log(Object.values(person));// ["John", 30]
まとめ
[編集]object
は、プロパティの集合を持つ複雑なデータ型です。- オブジェクトは、ドット記法やブラケット記法でアクセスできます。
- オブジェクトは、プロトタイプを通じて継承することができます。
Object.create()
を使うと、指定したプロトタイプを持つ新しいオブジェクトを作成できます。