Is null an object? [duplicate]
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.
精彩评论