42427


**前提**  
・「Object.create」が使用できる環境

* * *

**オブジェクト作成する際、「Object.create」ではダメで「new Object()」でしか出来ないことはありますか？**  
・「Object.create」は、完全な上位互換ですか？  
・「Object.create」ではなく「new Object()」と書いた方が良いケースはある？  
・「new Object()」は古い書き方なので、敢えて使用する必要はない？？


CC BY-SA 3.0
2018-03-16T03:10:58.673
42426
2018-03-16T04:36:06.347
7886
question
javascript
オブジェクト作成する際、「Object.create」ではなく「new Object()」と書いた方が良いケースはある？


`Object.create`ではコンストラクターが実行されません。

`new Test()`の動作

[code]

    var obj = new Object();
    obj.__proto__ = Test.prototype;
    return Test.call(obj) || obj;
    
[/code]

`Object.create(Test.prototype)`の動作

[code]

    var obj = new Object();
    obj.__proto__ = Test.prototype;
    return obj;
    
[/code]

例えば`new
Date()`では現在時刻が得られますが`Object.create(Date.prototype)`では未初期化の`Date`オブジェクトが得られます。


CC BY-SA 3.0
2018-03-16T04:36:06.347
42427
2018-03-16T04:36:06.347
4236
42426
answer