Possible en double:
Null object in javascriptNull est-il un objet?
nul est un droit d'objet? Donc, si je mets x à null, pourquoi ne puis-je pas obtenir la valeur du constructeur?
var x = null;
alert(typeof x);
alert(x.constructor);
Possible en double:
Null object in javascriptNull est-il un objet?
nul est un droit d'objet? Donc, si je mets x à null, pourquoi ne puis-je pas obtenir la valeur du constructeur?
var x = null;
alert(typeof x);
alert(x.constructor);
Null est pas un objet en Javascript - null est le cas singulier du null
type primitif, et en tant que telle n'a pas de constructeur.
Donc rien n'est quelque chose =) – StingyJack
Oui, mais il n'y en a qu'un, et rien ne peut être rien - rien d'autre ne peut être rien, et si vous faites quelque chose, ce n'est plus rien. –
null
dans JS est une valeur primitive. Il n'a été construit par aucune fonction constructeur, donc il n'a pas de propriété constructor
. typeof null
étant 'object'
est fondamentalement un mensonge horrible retenu pour des raisons historiques. Ne vous attendez pas trop à la cohérence de JS, vous serez déçu!
Les valeurs primitives peuvent souvent se comporter comme des objets en raison de JS autoboxing: (1).constructor
travaux en dépit 1
étant également une valeur primitive, car elle appelle implicitement new Number(1)
. Mais il n'y a aucune forme d'objet de null
(ou undefined
) pour convertir automatiquement en, dans ce cas, vous obtenez une erreur.
En général, vous devez éviter d'utiliser constructor
. Pour de nombreux modèles de classe/instance construits au-dessus de JS, il ne fait pas ce que vous pensez du tout. instanceof
fonctionne généralement mieux.
également une copie possible de Is null an object in JavaScript? – stillstanding
@birryree, ce n'est pas une copie de ce sujet. Celui-là est à propos de la différence entre 'null' et' undefined', alors qu'il s'agit de la question si 'null' lui-même est un objet. – Harmen