1. ホーム
  2. javascript

[解決済み] Object.create(null)でJSオブジェクトを作成するのは{}と同じですか?

2022-04-23 12:11:27

質問

私はJSオブジェクトを作成する方法をたくさん知っていますが、私は Object.create(null) の1つです。

質問です。

と全く同じなのでしょうか。

var p = {}

var p2 = Object.create(null);

?

解決方法は?

両者は等価ではありません。 {}.constructor.prototype == Object.prototype 一方 Object.create(null) は何も継承しないので、全くプロパティを持ちません。

言い換えれば javascriptのオブジェクトは、明示的にnullをプロトタイプとして作成しない限り、デフォルトでObjectを継承しています。 Object.create(null) .

{} は、代わりに次のように等価になります。 Object.create(Object.prototype) .


Chrome Devtoolでは、以下のように表示されます。 Object.create(null) には __proto__ プロパティを使用し、一方 {} が行います。