[Object Object] est la représentation de chaîne par défaut d'un objet JavaScript.
Je comprendrais si c'était [Object]
ou [object]
, mais pourquoi [object Object]
? Pourquoi le premier mot est en minuscule et le second est en majuscule? Cela fait-il partie de JSON ou JavaScript?
Tous les objets ont une méthode toString
qui affiche quelque chose dans le format [object type]
, où type est le type d'objet.
Lorsque vous null
vous obtenez [object Null]
et, lorsqu'il est appelé sur un objet, vous obtenez la chaîne [object Object]
car elle est basée sur le constructeur Object (capital "O"), c'est pourquoi il dit l' object
deux fois, c'est un objet du Tapez Object.
MDN
JSON est un format d'échange de données léger et n'a vraiment rien à voir avec JavaScript autre que d'être nommé "Notation d'objet JavaScript" car il est écrit comme un objet JavaScript.
Je comprendrais si c'était [Object] ou [object], mais pourquoi [objet Object]?
Parce qu'il s'agit d' un objet créé à partir de la classe d' Object
base.
À partir de la spécification :
Renvoie la valeur de la chaîne qui résulte de la concaténation des trois chaînes "[objet", classe et "]".
Cela fait-il partie de JSON ou JavaScript?
Il n'a absolument rien à voir avec JSON.
Le premier object
indique que le type de chose en cours d'enregistrement est un objet. Il est également codé dans les spécifications linguistiques ici .
Le deuxième Object
désigne la propriété constructeur, par exemple:
Object.prototype.toString.call(""); // [object String]
L'algorithme dit simplement: "Obtenir la propriété [[classe]] de l'objet, puis retourner '[object' + class + ']' '.
Vous avez fondamentalement frappé le mur platonique de la grotte. Si tout est un objet, quel est le sur-ensemble de l'objet? Ici, la réponse est incorporée dans le code, c'est simplement un objet.
Par conséquent, tous les objets sont des objets.
Bienvenue dans la circularité.