javascriptでobjectを生成する3つの方法(時間がない方はこちら)
方法1: 何かのオブジェクトを直接指定する
javascript
const obj = {...}
方法2: Object.create()を利用する
javascript
const obj = Object.create(<何かのprototype>)
方法3: new Object()を利用する
javascript
const obj = new Object()
3つの方法の違い
方法1は、内部的に方法3を利用するため、ここでは方法2と方法3を比べる。
new Object()とObject.create()の内部比較
new Object() | Object.create() | |
---|---|---|
prototype | Object()のprototypeを持つ | - constructの持たないオブジェクトを生成 - オブジェクトを生成時にprototypeを指定する必要あり - 引数としてnullを入れることもOK |
constructor | Object()のconstructorを持つ | - 引数として入れたprototypeのconstructorを持つ - 引数にnullを入れた場合、constructorのないオブジェクトが生成される |
つまり、prototypeをカスタムできるかどうかの違い。
なお、方法1は方法3を内部的に利用するため、Object.prototypeを継承さえる。