JavaScript 入門 | オブジェクト (object) | オブジェクトの作成

オブジェクトの作成

JavaScript でオブジェクトを作成する方法は次のとおりである。

  1. リテラル表記 (literal notation) を利用する方法
  2. コンストラクター関数 (constructor function) を利用する方法
  3. Object.create() メソッドを利用する方法

上のような方法で作成され、メモリに代入されたオブジェクトをインスタンス (instance) という。

リテラル表記を利用したオブジェクトの作成

JavaScript でオブジェクトを作成する最も簡単な方法は、リテラル表記 (literal notation) を利用する方法である。

構文

var オブジェクト名 = {
    プロパティ1名 : プロパティ1の値,
    プロパティ2名 : プロパティ2の値,
    ...
};

それぞれのプロパティは名前と値をコロン (:) でつなぎ、カンマ (,) を使って他のプロパティと区別する。 プロパティ名には JavaScript の識別子 (identifier) や文字列を使用できる。

var kitty = {
    name: "ナビ",
    family: "コリアンショートヘア",
    age: 1,
    weight: 1.1
};
document.write("我が家の子猫の名前は " + kitty.name + " で、種類は " + kitty.family + " である。");

コンストラクターを利用したオブジェクトの作成

new 演算子を使用して、オブジェクトを作成して初期化できる。
このとき使用されるメソッドをコンストラクター (constructor) といい、このメソッドは新しく作成されるオブジェクトを初期化する役割を持つ。
JavaScript は、プリミティブ型のためのコンストラクターをあらかじめ定義して提供している。

var day = new Date(); // new 演算子を使用して Date 型のオブジェクトを作成する。
document.write("今年は " + day.getFullYear() + " 年である。");

上の例のように JavaScript が提供するコンストラクターを使用することもでき、ユーザーが直接オブジェクトコンストラクター関数 (object constructor function) を作成して使用することもできる。

Object.create() メソッドを利用したオブジェクトの作成

Object.create() メソッドを利用してオブジェクトを作成することもできる。
Object.create() メソッドは、指定されたプロトタイプ (prototype) オブジェクトとプロパティを持つ新しいオブジェクトを作成する。
したがって、このメソッドを利用するとユーザーがプロトタイプオブジェクトを直接明示できるため、非常に便利に使用できる。

構文

Object.create(プロトタイプオブジェクト[, 新しいオブジェクトのプロパティ1, 新しいオブジェクトのプロパティ2, ...]);

Object.create() メソッドの最初の引数には、プロトタイプとして使用するオブジェクトを渡す。
2 番目の引数には、新しいオブジェクトに追加するプロパティ情報を渡す。

var obj = Object.create(null, {             // null プロトタイプを使用して新しいオブジェクトを作り
    x: { value: 100, enumerable: true },    // x 座標を表す列挙可能なプロパティと
    y: { value: 200, enumerable: true }     // y 座標を表す列挙可能なプロパティを追加する。
});
obj.x;                      // x 座標
obj.y;                      // y 座標
Object.getPrototypeOf(obj); // オブジェクトのプロトタイプを返す。