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);
alert(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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With