3

如果 chrome/safari webkit 检查器中的输出包含打印出的对象,例如:

在此处输入图像描述

嵌套对象的负载只会更加复杂(这就是复制/粘贴不会做的原因)

有没有办法将它放在一个变量中以进一步检查并在它被打印到控制台(它的打印通过console.log)之后处理它,只是在它已经在控制台中之后?

4

3 回答 3

6

$_会给你控制台的最后输出。因此,在控制台中,您可以分配给变量。

在此处输入图像描述

请注意,您只能在控制台中执行此操作,而不能从您自己的代码中执行此操作。

于 2013-03-17T18:55:57.657 回答
4

这是一种无需包装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'],因为您刚刚记录了它。

于 2013-03-17T19:09:45.210 回答
1

如果您希望获得最后的输出请按照 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"
于 2013-03-17T19:01:31.393 回答