JavaScriptでオブジェクトとは何ですか?

JavaScript でオブジェクトとは何か?

JavaScript でオブジェクトとは何か?

JavaScript では、文字列や配列などの JavaScript のコア機能から、JavaScript の最上部に構築されたブラウザー API まで、ほとんどのものがオブジェクトです。オブジェクトは、JavaScript における重要な構成要素であり、コードを整理し、再利用可能なコンポーネントを作成するための強力な方法を提供します。

オブジェクトの基礎

JavaScript のオブジェクトは、名前付き値の集合体です。これらの値は、データプロパティとアクセサプロパティの2種類があります。

プロパティの種類 説明
データプロパティ キーと値のペアで構成されます。値はプリミティブ型(文字列、数値、真偽値など)または別のオブジェクトにすることができます。
アクセサプロパティ ゲッター関数とセッター関数を使用して、プロパティの値の取得と設定を制御します。

オブジェクトは、オブジェクトリテラル、コンストラクタ関数、クラス構文など、いくつかの方法で作成できます。

オブジェクトリテラル

オブジェクトリテラルは、オブジェクトを作成するための最も一般的な方法です。中括弧 {} 内にキーと値のペアを記述します。


const person = {
  name: "太郎",
  age: 30,
  job: "エンジニア"
};

コンストラクタ関数

コンストラクタ関数は、新しいオブジェクトを作成するための設計図を提供します。new キーワードを使用して、コンストラクタ関数を呼び出し、新しいオブジェクトを作成します。


function Car(brand, model, year) {
  this.brand = brand;
  this.model = model;
  this.year = year;
}

const myCar = new Car("Toyota", "Corolla", 2023);

クラス構文

クラス構文は、ES6 で導入された、オブジェクト指向プログラミングのための構文上の砂糖です。クラスは、オブジェクトの作成方法を定義する設計図です。


class Animal {
  constructor(name) {
    this.name = name;
  }

  speak() {
    console.log(`${this.name} が鳴いています。`);
  }
}

const myDog = new Animal("ポチ");
myDog.speak(); // "ポチ が鳴いています。" を出力

オブジェクトのメソッド

オブジェクトのプロパティには、関数も含まれます。オブジェクトのプロパティとして定義された関数を、メソッドと呼びます。


const calculator = {
  add: function(a, b) {
    return a + b;
  },
  subtract: function(a, b) {
    return a - b;
  }
};

console.log(calculator.add(2, 3)); // 5 を出力

オブジェクト指向プログラミング

オブジェクトは、オブジェクト指向プログラミング(OOP)の基礎です。OOP は、オブジェクトを中心にソフトウェアを設計・開発するプログラミングパラダイムです。OOP の主な概念には、カプセル化、継承、ポリモーフィズムなどがあります。

参考資料

よくある質問

Q1. オブジェクトと配列の違いは何ですか?

A1. 配列は、順序付けられたデータの集合体であり、インデックスを使用してアクセスします。オブジェクトは、名前付き値の集合体であり、キーを使用してアクセスします。

Q2. JavaScript でオブジェクトを反復処理するにはどうすればよいですか?

A2. for...in ループまたは Object.keys() メソッドを使用して、オブジェクトのプロパティを反復処理できます。

Q3. JavaScript のオブジェクトはミュータブルですか、それともイミュータブルですか?

A3. JavaScript のオブジェクトは、ミュータブルです。つまり、オブジェクトを作成した後でも、そのプロパティを変更できます。

その他の参考記事:jquery オブジェクト