Chrome 39開発ツールでは、次のコードがあります。
var something = [
{x: 'foo'},
{x: 'foo'}
];
console.log(something);
something.forEach(function (element) {
element['x'] = 'baz';
});
...出力:
console.log
変更される前に変更された値を出力するのはなぜですか?
2012年の同様の質問では、クロムのバグが原因console.log
で「遅延」している(入力オブジェクトをすぐに文字列化しない)と説明されています。しかし、バグは修正済みとしてマークされているのに、なぜこれが数年後もまだ発生しているのですか?
そうではありません。
を使用してオブジェクトを出力するとconsole.log
、オブジェクトは「参照によって」出力されます。コンソールの値は動的であり、オブジェクトの現在の状態を反映するように更新されます。
オブジェクトに関する静的なテキスト文字列を出力する場合は、次を使用します。 console.dir
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加