takafumi blog

日々の勉強メモ

【JavaScript】 オブジェクト生成

環境   CentOS 7.0 JavaScript Node.js 0.12.2

オブジェクトを生成する主な方法は、以下3通り。

1) オブジェクトリテラル

var o0 = {};               // 空オブジェクト
var o1 = {a:1, b:"hoge"};

2) new演算子

var o2 = new Object();                     // 空オブジェクト
var o3 = new Object({x:"hoge", y:"fuga"}); // プロパティx,yを持つオブジェクト
var o4 = new Object(o3);                   // プロパティx,yを持つオブジェクト

console.log(o4);  // { x: 'hoge', y: 'fuga' }

3) Object.create()

var o5 = Object.create();
var o6 = Object.create({a:1}, {    // prototypeに{a:1}、プロパティに{x:"hoge", y:"fuga"}を持つ
    x: {value: "hoge", writable: true, enumerable:true, configurable:true},
    y: {value: "fuga", writable: true, enumerable:true, configurable:true},
});

console.log(o6);                        // { x: 'hoge', y: 'fuga' }
console.log(Object.getPrototypeOf(o6)); // { a: 1 }

Object.create()

  • 第一引数
    オブジェクト形式で渡す。
    するとこのオブジェクトのプロパティ、メソッドが設定される。
  • 第二引数
    Object.defineProperties()の第二引数と同じ。
    プロパティの属性を設定可能。