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