JavaScriptのオブジェクトを完璧に理解するための超解説

JavaScriptを学ぶ上で「オブジェクト」の理解は不可欠です。これは変数や関数と同じく、言語の根本的なパーツの一つであり、設計パターンやデータ構造を理解する上での要矩です。

この記事ではJavaScriptのオブジェクトについて、基礎知識から強力な実装テクニックまで、完全解説します。


【基礎】JavaScriptのオブジェクトとは何か

JavaScriptでは「すべてはオブジェクト」といえるほど、この概念がコアになっています。オブジェクトとは、「キー(key)と値(value)の組み合わせ」で構成されるデータ構造です。

例:基本のオブジェクト

const user = {
  name: "Taro",
  age: 25,
  isMember: true
};

これはuserという名前のオブジェクトで、name age isMemberがキー、それぞれに値が設定されています。


【実践】プロパティの読み取りと変更

読み取り

console.log(user.name);      // "Taro"
console.log(user["age"]);    // 25

変更

user.age = 26;
user["isMember"] = false;

【強力】ネスト構造や関数を含める

JavaScriptのオブジェクトは、ネスト構造や関数を含めることもできます。

const user = {
  name: "Mio",
  contact: {
    email: "mio@example.com",
    phone: "080-0000-0000"
  },
  greet: function() {
    console.log(`Hello, I'm ${this.name}`);
  }
};

user.greet(); // Hello, I'm Mio

【専門】Objectクラスの基本API

Object.keys() / Object.values() / Object.entries()

Object.keys(user);   // ["name", "contact", "greet"]
Object.values(user); // ["Mio", {...}, function() {...}]
Object.entries(user);

hasOwnProperty()

キーが存在するかの確認

user.hasOwnProperty("name"); // true

delete キー値を削除

delete user.contact;

【作り方】オブジェクトの生成方法

1. リテラルオブジェクト文法

もっとも基本の作り方

const obj = {
  key: "value"
};

2. new Object()

const obj = new Object();
obj.key = "value";

3. Object.create()

プロトタイプを指定

const proto = {greet() { console.log("Hello"); }};
const obj = Object.create(proto);
obj.greet();

【実用】オブジェクトと配列、Mapの違い

タイプキーキー項目順序保持用途
Objectstring/symbol自由一部保持情報の集合
Arraynumber index数字列保持順序ありのデータ
Map任意パーフォーマンス良保持キー値の組合

【発展】クラスとオブジェクト

ES6以降はclass文法を使ってオブジェクトを統一的にデザインすることも可能です

class User {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }
  greet() {
    console.log(`Hello, I'm ${this.name}`);
  }
}

const u = new User("Mio", 22);
u.greet();

【おわりに】

JavaScriptのオブジェクトは、データを機能的に管理するための強力なツールです。基礎を抽象化して理解すると、ReactやNext.jsといった現代的フレームも根本の思考で理解しやすくなります。

この記事が、オブジェクトの概念を完璧に理解するための一歩となれば幸いです。

おすすめの記事