1
var Object1 = {};
var Object2 = new Object();
var Object3 = Object.create({});

プロトタイプが等しいかどうかを確認するとObject.prototype:

最初の 2 つが戻りtrue、3 つ目が戻りますfalse

なぜこうなった?

Object.getPrototypeOf(Object1)===Object.prototype //true
Object.getPrototypeOf(Object2)===Object.prototype //true
Object.getPrototypeOf(Object3)===Object.prototype //false
4

2 に答える 2

2

ドキュメントのObject.create()を見ると、このメソッドは次のようになります。

指定されたプロトタイプ オブジェクトとプロパティで新しいオブジェクトを作成します。

そして、あなたがそれを呼び出すと:

Object.create({})

プロトタイプを渡しているのではなく、プロパティのない空のオブジェクトを渡しています。

したがって、コメントで述べたように、次のように呼び出す必要があります。

Object.create(Object.prototype)
于 2015-07-22T08:28:02.933 に答える