0
(Object)コンストラクタのすべてのjavascriptオブジェクトインスタンスですか?(Object)コンストラクタのすべてのオブジェクトインスタンスですか?
オブジェクトを作成でき、同時に(Object)のインスタンスではないか、このコンストラクタはすべてのオブジェクトがインスタンスである汎用コンストラクタですか?
(Object)コンストラクタのすべてのjavascriptオブジェクトインスタンスですか?(Object)コンストラクタのすべてのオブジェクトインスタンスですか?
オブジェクトを作成でき、同時に(Object)のインスタンスではないか、このコンストラクタはすべてのオブジェクトがインスタンスである汎用コンストラクタですか?
特別な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;
:
しかし、最初の文で言ったように、我々は
Object.create()
方法にinstanceof Object
のおかげではないオブジェクトを作成するためにそれを使用することができますそれをinstanceof(Object)にしますか? –@NoOneよくない。 'instanceof'はプロトタイプチェーンをチェックします。 'Object.create(null)'はプロトタイプとして 'null'を持つオブジェクトを作成するので、' instanceof'は 'false'を返します。しかし、Objectのメソッド( 'toString()'など)を持たないことに注意してください。実際のコードではしたくないかもしれません。 – Kaiido