对象是否为null?
可能重复:
JavaScript中的空对象
空是一个对象吗? 所以如果我将x设置为null,为什么我不能获得构造函数值?
var x = null;
alert(typeof x);
alert(x.constructor);
JS中的null
是一个原始值。 它不是由任何构造函数构造的,所以它没有constructor
属性。 typeof null
是'object'
基本上是由于历史原因保留的一个可怕的谎言。 不要指望JS的过于一致,你会失望!
由于自动装箱,原始值通常可以像JS中的对象(1).constructor
工作: (1).constructor
尽管1
也是一个原始值,但它会隐式地调用new Number(1)
。 但是没有对象形式的null
(或undefined
)自动转换为,所以在这种情况下,你会得到一个错误。
一般来说,你应该避免使用constructor
。 对于构建在JS之上的许多类/实例模型,它不会完全按照您的想法进行操作。 instanceof
通常效果更好。
Null不是Javascript中的对象 - null是null
基元类型的单数实例,因此没有构造函数。
上一篇: Is null an object?