Dans Chrome, l' console
objet définit deux méthodes qui semblent faire la même chose:
console.log(...)
console.dir(...)
J'ai lu quelque part en ligne qui dir
prend une copie de l'objet avant de l'enregistrer, alors que log
je passe simplement la référence à la console, ce qui signifie qu'au moment où vous allez inspecter l'objet que vous avez enregistré, il peut avoir changé. Cependant, certains tests préliminaires suggèrent qu'il n'y a pas de différence et qu'ils souffrent tous les deux de la possibilité de montrer des objets dans des états différents de ceux lorsqu'ils étaient enregistrés.
Essayez ceci dans la console Chrome ( Ctrl+ Shift+ J) pour voir ce que je veux dire:
> o = { foo: 1 }
> console.log(o)
> o.foo = 2
Maintenant, développez le [Object]
sous l'instruction log et notez qu'elle s'affiche foo
avec une valeur de 2. Il en va de même si vous répétez l'expérience en utilisant dir
au lieu delog
.
Ma question est, pourquoi ces deux fonctions apparemment identiques existent-elles console
?
console.dir
ne change pas, donc cela fait une grande différence.
console.dir()
: cette fonctionnalité n'est pas standard ! Alors ne l'utilisez pas en production;)
console.log([1,2])
etconsole.dir([1,2])
vous verrez la différence.