質問: **前提** ・「Object.create」が使用できる環境 --- **オブジェクト作成する際、「Object.create」ではダメで「new Object()」でしか出来ないことはありますか?** ・「Object.create」は、完全な上位互換ですか? ・「Object.create」ではなく「new Object()」と書いた方が良いケースはある? ・「new Object()」は古い書き方なので、敢えて使用する必要はない??
回答: `Object.create`ではコンストラクターが実行されません。 `new Test()`の動作 ``` var obj = new Object(); obj.__proto__ = Test.prototype; return Test.call(obj) || obj; ``` `Object.create(Test.prototype)`の動作 ``` var obj = new Object(); obj.__proto__ = Test.prototype; return obj; ``` 例えば`new Date()`では現在時刻が得られますが`Object.create(Date.prototype)`では未初期化の`Date`オブジェクトが得られます。