Comment puis-je inspecter un objet dans une boîte d'alerte? Normalement, alerter un objet lance simplement le nom du nœud:
alert(document);
Mais je veux obtenir les propriétés et les méthodes de l'objet dans la boîte d'alerte. Comment puis-je obtenir cette fonctionnalité, si possible? Ou y a-t-il d'autres suggestions?
En particulier, je recherche une solution pour un environnement de production où console.log et Firebug ne sont pas disponibles.
javascript
object
inspect
Valentina
la source
la source
console.log
sur Firefox ou ChromeJSON.stringify
utile.Réponses:
Les boucles
for
-in
pour chaque propriété d'un objet ou d'un tableau. Vous pouvez utiliser cette propriété pour accéder à la valeur et la modifier.Remarque: les propriétés privées ne sont pas disponibles pour inspection, sauf si vous utilisez un "espion"; fondamentalement, vous remplacez l'objet et écrivez du code qui effectue une boucle d'entrée dans le contexte de l'objet.
Car en ressemble à:
Quelques exemples de code:
Edit: Il y a quelque temps, j'ai écrit mon propre inspecteur, si cela vous intéresse, je suis heureux de partager.
Edit 2: Eh bien, j'en ai écrit un de toute façon.
la source
Que diriez-vous
alert(JSON.stringify(object))
d'un navigateur moderne?Dans le cas de
TypeError: Converting circular structure to JSON
, voici plus d'options: Comment sérialiser le nœud DOM en JSON même s'il existe des références circulaires?La documentation:
JSON.stringify()
fournit des informations sur le formatage ou la mise en valeur de la sortie.la source
alert(JSON.stringify(object, null, 4)
où4
est le nombre d'espaces utilisés pour l'indentation.stringify
ne montrera pas les méthodes:JSON.stringify({f: ()=>{}}) => "{}"
. En outre, si l'objet implémente latoJSON
méthode que vous obtenez ce que retourne la méthode, ce qui est inutile si vous voulez inspecter l'objet:JSON.stringify({toJSON: () => 'nothin'}) => '"nothin"'
.Utilisation
console.dir(object)
et le plugin Firebugla source
console.dir
fonctionnalité. Je ne pouvais pas comprendre pourquoi je ne pouvais plus voir l'objet complet dans Firebug. Cela a maintenant réglé le problème pour moi. Merci!console.log
plus de la commodité d'affichage, s'il vous plaîtIl existe quelques méthodes:
Dans un contexte de console, parfois le .constructor ou .prototype peut être utile:
la source
Utilisez votre console:
Ou si vous inspectez des éléments html dom, utilisez console.dir (object). Exemple:
Ou si vous avez un tableau d'objets js, vous pouvez utiliser:
Si vous sortez beaucoup de console.log (objets), vous pouvez également écrire
Cela vous aidera à étiqueter les objets écrits sur la console.
la source
console
car j'utilise le style stackoverflow.com/q/7505623/1480391 et ce n'est pas compatiblela source
C'est une arnaque flagrante de l'excellente réponse de Christian. Je viens de le rendre un peu plus lisible:
la source
Voici mon inspecteur d'objets qui est plus lisible. Parce que le code prend trop de temps à écrire ici, vous pouvez le télécharger à http://etto-aa-js.googlecode.com/svn/trunk/inspector.js
Utilisez comme ceci:
la source