Object.create()

(標準組み込みオブジェクト > Object > メソッド)
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/create

Object.create(proto, propertiesObject);

既存のオブジェクトを新しく生成されるオブジェクトのプロトタイプとして使用して、新しいオブジェクトを生成する。
第1引数 proto は、新たに生成されるオブジェクトのプロトタイプになるべきオブジェクトである。
第2引数の propertiesObject は、列挙可能なown property(プロパティ記述子を指定する。新たなobjectのプロパティに追加される。Object.definePropertyesの第二引数に対応するところ)。省略可能。

//Object.createで空のオブジェクトを作成し、値が1のプロパティpを出力する
const obj = Object.create({}, {p: {value: 1}});
obj.p //1

// 書き換えtrue、列挙true、変更trueとして新たにオブジェクトを生成する
o2 = Object.create({},{p: {value: 32, writable: true, enumerable: true, configurable: true}});

o2.p = 54; // 書き換え => 54
for (var prop in o2){
  console.log(prop) // 列挙 => p
}
delete o2.p // 変更 => true
inserted by FC2 system