Maison > interface Web > js tutoriel > Pourquoi « console.log » affiche-t-il parfois le mauvais état de l'objet et comment puis-je y remédier ?

Pourquoi « console.log » affiche-t-il parfois le mauvais état de l'objet et comment puis-je y remédier ?

Susan Sarandon
Libérer: 2024-12-21 09:12:14
original
280 Les gens l'ont consulté

Why Does `console.log` Sometimes Show the Wrong Object State, and How Can I Fix It?

Comment afficher l'état actuel d'un objet dans Console.log

Lorsque vous utilisez console.log pour générer un objet, vous pouvez rencontrer un problème où l'objet affiché reflète son état au moment de l'exécution finale, et non lorsque console.log a été initialement invoqué. Cet écart peut être particulièrement évident dans Safari et les navigateurs sans extensions supplémentaires.

Problème :

Considérez l'exemple suivant :

var test = { a: true };
console.log(test); // {a: false}
test.a = false; 
console.log(test); // {a: false}
Copier après la connexion

Dans cet Dans ce scénario, le deuxième appel console.log affiche incorrectement {a: false}, même si la valeur réelle de la propriété 'a' a été attribuée à 'false'.

Solution : Utilisation de console.dir()

Pour résoudre ce problème et afficher l'état actuel de l'objet lorsque console.log est appelé, vous peut exploiter la fonction console.dir(). Contrairement à console.log(), console.dir() fournit un répertoire des propriétés de l'objet au moment de l'invocation, fournissant une représentation précise de l'état de l'objet.

Utilisation de la stringification JSON :

Vous pouvez également utiliser la stringification et l'analyse JSON pour obtenir un résultat similaire :

console.log(JSON.parse(JSON.stringify(obj)));
Copier après la connexion

Ceci L'approche implique de convertir l'objet en chaîne JSON à l'aide de JSON.stringify(), puis de le réanalyser en un objet JSON à l'aide de JSON.parse(). Cela clone efficacement l'objet, vous permettant d'afficher son état actuel avec précision.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal