chrome/safari webkit インスペクタに、次のような出力オブジェクトを含む出力がある場合:
ネストされたオブジェクトが大量にある場合は、はるかに複雑になります(これが、コピー/貼り付けができない理由です)
これを変数に入れてさらに検査し、コンソールに出力された後に処理する方法はありますか (経由で出力されますconsole.log
)、コンソールに既に表示された直後にのみですか?
chrome/safari webkit インスペクタに、次のような出力オブジェクトを含む出力がある場合:
ネストされたオブジェクトが大量にある場合は、はるかに複雑になります(これが、コピー/貼り付けができない理由です)
これを変数に入れてさらに検査し、コンソールに出力された後に処理する方法はありますか (経由で出力されますconsole.log
)、コンソールに既に表示された直後にのみですか?
$_
コンソールの最後の出力が表示されます。したがって、コンソールで変数に割り当てることができます。
これはコンソールでのみ実行でき、独自のコードからは実行できないことに注意してください。
カスタムログ関数でラップせずにそれを行う方法は次のとおりです。console.log
var justLogged;
var oldLog = console.log;
console.log = function () {
oldLog.apply(console, arguments);
justLogged = arguments;
};
console.log('test');
// if necessary, restore console.log to its original behavior when you're finished with it
console.log = oldLog;
の値は、記録したばかりなので にjustLogged
なります。['test']
最後の出力を取得したい場合は、Mohsen の提案に従ってください。
の最後の出力を取得しようとしている場合console.log
、最善の策はラッパー関数です。これにより、(1) やりたいことを実行できます (2) 本番環境では簡単に無効にできます。これは、古い IE で役に立ち、デバッグ メッセージを非表示にします。
var log = (function() {
var lastOutput;
var fn = function() {
lastOutput = arguments[0]; // save the last argument
console.log.apply(console, arguments); // defer to console.log
};
fn.last = function() {
return lastOutput;
};
return fn;
})();
log("abc123");
log.last(); // => "abc123"