Chromeでは、console
オブジェクトは同じことをするように見える2つのメソッドを定義します。
console.log(...)
console.dir(...)
dir
ログを記録する前にオブジェクトのコピーを取得するオンラインのどこかを読みましたlog
が、参照をコンソールに渡すだけです。つまり、ログに記録したオブジェクトを検査するまでに、オブジェクトが変更されている可能性があります。ただし、一部の予備テストでは、違いはなく、どちらもログに記録されたときとは異なる状態のオブジェクトが表示される可能性があることを示しています。
Chromeコンソール(Ctrl+ Shift+ J)でこれを試して、意味を確認してください。
> o = { foo: 1 }
> console.log(o)
> o.foo = 2
ここで[Object]
、ログステートメントの下を展開するfoo
と、値が2 で表示されていることがわかります。のdir
代わりにを使用して実験を繰り返した場合も同様ですlog
。
私の質問は、なぜこれらの2つの一見同じ機能が存在するのconsole
ですか?
console.dir
変更されないため、大きな違いがあります。
console.log([1,2])
とconsole.dir([1,2])
、違いがわかります。