开发者

Is null an object? [duplicate]

This question already has answers here: Closed 12 years ago.

Possible Duplicate:

Null object in javascript

Null is an object right? So if i set x to null, why can't i get the constructor value?

 var x = null;
 alert(typeof x);
 al开发者_JS百科ert(x.constructor);


null in JS is a primitive value. It wasn't constructed by any constructor function, so it doesn't have a constructor property. typeof null being 'object' is basically a horrible lie retained for historical reasons. Don't expect too much consistency from JS, you'll be disappointed!

Primitive values can often behave like objects in JS due to autoboxing: (1).constructor works despite 1 also being a primitive value, because it implicitly calls new Number(1). But there is no Object form of null (or undefined) to automatically convert to, so in this case you get an error.

In general you should avoid using constructor. For many class/instance models built on top of JS it doesn't do what you think at all. instanceof typically works better.


Null is not an object in Javascript - null is the singular instance of the null primitive type, and as such has no constructor.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜