Nullがオブジェクトの右ですか?だから私はnullにxを設定する場合、なぜ私はコンストラクタの値を得ることができないのですか?
var x = null;
alert(typeof x);
alert(x.constructor);
Nullがオブジェクトの右ですか?だから私はnullにxを設定する場合、なぜ私はコンストラクタの値を得ることができないのですか?
var x = null;
alert(typeof x);
alert(x.constructor);
ヌルはJavaScriptでオブジェクトではない - nullはnull
プリミティブ型の特異インスタンスであり、そのようなものとしてはコンストラクタを有していません。
だから何もありません=) – StingyJack
しかし、そこには1つしかありません。何も何もできません。それ以外は何もできません。あなたが何かを作るなら、それはもう何もありません。 –
null
JSはプリミティブな値です。どのコンストラクタ関数でも構築されていないため、constructor
プロパティはありません。 typeof null
が'object'
であることは、基本的に歴史的な理由から残された恐ろしい嘘です。 JSとのあまりの一貫性を期待しないでください、あなたは失望します!
プリミティブ値は、しばしばオートボクシングにJSでのオブジェクトのように振る舞うことができます。(1).constructor
作品を1
もプリミティブな値であるにもかかわらず、それが暗黙のうちにnew Number(1)
を呼び出すため。しかし、自動的に変換するオブジェクト形式はnull
(またはundefined
)なので、この場合はエラーが発生します。
通常、constructor
は使用しないでください。 JSの上に構築された多くのクラス/インスタンスモデルでは、あなたが考えることはまったく行いません。 instanceof
が正常に動作します。
Is null an object in JavaScript? – stillstanding
@birryreeの可能な複製も、そのトピックの複製ではありません。これは 'null'と' undefined'の違いについてですが、 'null'自体がオブジェクトであるかどうかは疑問です。 – Harmen