可能是重复问题:
JavaScript中的Null对象
Null是一个对象,对吗?那么如果我将x设置为null,为什么无法获取构造函数的值?
var x = null;
alert(typeof x);
alert(x.constructor);
可能是重复问题:
JavaScript中的Null对象
Null是一个对象,对吗?那么如果我将x设置为null,为什么无法获取构造函数的值?
var x = null;
alert(typeof x);
alert(x.constructor);
null
在JS中是一个原始值。它没有由任何构造函数构建,因此它没有constructor
属性。 typeof null
被称为'object'
只是为了历史原因而保留下来的可怕谎言。不要期望从JS中获得太多一致性,否则会感到失望!
由于自动装箱,原始值在JS中通常可以表现得像对象:(1).constructor
有效尽管1
也是一个原始值,因为它隐式调用了new Number(1)
。但是,null
(或undefined
)没有对象形式可供自动转换,所以在这种情况下会出错。
通常应避免使用constructor
。对于许多基于JS构建的类/实例模型,它根本不起作用。相比之下,instanceof
通常效果更好。
在Javascript中,Null不是一个对象 - Null是null
原始类型的唯一实例,因此没有构造函数。
null
和undefined
之间的区别,而这个问题是关于null
本身是否是一个对象的问题。 - Harmen