JavaScript/オブジェクト型
表示
オブジェクト型
[編集]オブジェクト型 (Object type) は、JavaScriptにおける複雑なデータ構造を表すデータ型です。オブジェクト型は、プロパティ
(キーと値のペア)やメソッド
(関数)を持つことができ、柔軟で強力な機能を提供します。
オブジェクト型の特徴
[編集]- プロパティとメソッド: オブジェクトは名前付きプロパティを持ち、これにアクセスしたり変更することができます。また、プロパティとして関数を持つ場合、それは「メソッド」と呼ばれます。
- ミュータブル(可変性): プリミティブ型とは異なり、オブジェクト型はその内容を変更することができます。
- 参照型: オブジェクト型は値そのものではなく、その値への参照を格納します。
オブジェクトの作成方法
[編集]JavaScriptでは、オブジェクトを作成するさまざまな方法があります。
- オブジェクトリテラル:
const obj = { key: "value", method() { console.log("Hello!"); } };
- コンストラクター関数:
function Person(name) { this.name = name; } const person = new Person("Alice");
Object.create
メソッド:const prototype = { greet() { console.log("Hi!"); } }; const obj = Object.create(prototype);
- クラス構文:
class Animal { constructor(name) { this.name = name; } } const dog = new Animal("Dog");
プロパティの操作
[編集]オブジェクトのプロパティにアクセスする方法は以下の通りです。
// プロパティの取得 console.log(obj.key); // ドット記法 console.log(obj["key"]); // ブラケット記法 // プロパティの設定 obj.key = "newValue"; // プロパティの削除 delete obj.key;
特殊なオブジェクト型
[編集]JavaScriptには特殊なオブジェクト型がいくつか存在します。
- 配列 (
Array
): 順序付きのデータを格納します。 - 関数 (
Function
): 実行可能なコードのブロック。 - 日付 (
Date
): 日付や時刻を扱うためのオブジェクト。 - 正規表現 (
RegExp
): パターンマッチングを行うオブジェクト。 - エラオブジェクト (
Error
): エラー情報を表します。
オブジェクト型の判定
[編集]オブジェクト型かどうかを確認するには、typeof
演算子や instanceof
演算子を使用します。
const obj = {}; console.log(typeof obj); // "object" console.log(obj instanceof Object); // true
ただし、null
はプリミティブ型であるにもかかわらず、typeof null
が "object"
を返す点に注意してください。
オブジェクトのコピー
[編集]オブジェクトのコピーは「浅いコピー」と「深いコピー」に分類されます。
// 浅いコピー const shallowCopy = Object.assign({}, obj); // 深いコピー(再帰的にコピーする場合) const deepCopy = JSON.parse(JSON.stringify(obj));
まとめ
[編集]- オブジェクト型は、プロパティやメソッドを持つ複雑なデータ構造です。
- 配列や関数など、多くのJavaScriptのデータ型はオブジェクト型に分類されます。
- オブジェクト型は参照型であり、内容を変更可能である点が特徴です。