2017-08-12 1 views

答えて

0

特別なnull値を使用してプロトタイプを持たないオブジェクトを作成することができます。

nullのタイプは'object'ですが、それはどちらかのように、ある程度で、それはまだないinstanceof Objectなど対象としての資格ができプロトタイプを持っていません。

しかし、そのタイプとは別に、実際にはオブジェクトではないため(例:プロパティを追加できないなど)、候補は貧弱であると認めなければなりません。だから、オブジェクトであることは必ずしもない

var o = Object.create(null); // use null has prototype 
 
console.log(o); 
 
console.log('instanceof Object:', o instanceof Object); // false; 
 

 
o.isAnObject = true; 
 
console.log('can have own properties:', o.isAnObject); // true;

+0

しかし、最初の文で言ったように、我々はObject.create()方法にinstanceof Objectのおかげではないオブジェクトを作成するためにそれを使用することができますそれをinstanceof(Object)にしますか? –

+0

@NoOneよくない。 'instanceof'はプロトタイプチェーンをチェックします。 'Object.create(null)'はプロトタイプとして 'null'を持つオブジェクトを作成するので、' instanceof'は 'false'を返します。しかし、Objectのメソッド( 'toString()'など)を持たないことに注意してください。実際のコードではしたくないかもしれません。 – Kaiido

関連する問題