2

有没有办法引用你最喜欢的浏览器的 JavaScript 控制台中刚刚打印的最后一个对象?

例如,在 JavaScript 函数末尾的某个地方有一个 console.log(myObject) 在您的代码中。是否可以在控制台中引用此打印出的 myObject 以基于此对象在控制台中进行一些测试?

实际例子...

JavaScript 文件中的代码:

console.log("Test");

哪个打印Test

现在我想做一些类似 eg console.last().substring(0,2)which should print的事情Te

4

1 回答 1

5

不,这对于标准consoleAPI是不可能的。但是,您可以编写自己的包装器来console.log()提供以下功能:

var _log = console.log;
console.log = function () {
    // turn arguments into an array and store it
    this._last = [].slice.call(arguments);

    // call the original function
    _log.apply(console, arguments);
};

console.last = function() {
    return this._last;
};

请注意,此实现console.last()将始终返回一个数组,因为console.log()它接受任意数量的参数:

> console.log('foo', 3, true)
  foo 3 true
> console.last()
  ["foo", 3, true]
于 2013-08-16T13:43:36.770 回答