Duplicar posibles:
Null object in javascript¿Es nulo un objeto?
nulo es un derecho objeto? Entonces, si configuro x en nulo, ¿por qué no puedo obtener el valor del constructor?
var x = null;
alert(typeof x);
alert(x.constructor);
Duplicar posibles:
Null object in javascript¿Es nulo un objeto?
nulo es un derecho objeto? Entonces, si configuro x en nulo, ¿por qué no puedo obtener el valor del constructor?
var x = null;
alert(typeof x);
alert(x.constructor);
Null no es un objeto en Javascript - nula es la instancia singular del tipo primitivo null
, y como tal tiene ningún constructor.
Así que nada ES algo =) – StingyJack
Sí, pero solo hay uno, y nada puede ser nada, nada más puede ser nada, y si haces algo, ya no es nada. –
null
en JS es un valor primitivo. No fue construido por ninguna función constructora, por lo que no tiene una propiedad constructor
. typeof null
siendo 'object'
es básicamente una mentira horrible retenida por razones históricas. No esperes mucha consistencia de JS, ¡te decepcionará!
Los valores primitivos pueden a menudo se comportan como objetos en JS debido a autoboxing: (1).constructor
obras a pesar 1
siendo también un valor primitivo, porque llama implícitamente new Number(1)
. Pero no existe el formulario Object de null
(o undefined
) para convertir automáticamente a, por lo que en este caso se obtiene un error.
En general, debe evitar el uso de constructor
. Para muchos modelos de clase/instancia construidos sobre JS, no hace lo que piensas en absoluto. instanceof
por lo general funciona mejor.
también un posible duplicado de Is null an object in JavaScript? – stillstanding
@birryree, no es un duplicado de ese tema. Esa es la diferencia entre 'null' y' undefined', mientras que se trata de la pregunta si 'null' en sí es un objeto. – Harmen