Javascript – 覆盖console.log并保留旧功能

前端之家收集整理的这篇文章主要介绍了Javascript – 覆盖console.log并保留旧功能前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想覆盖console.log并在我的新函数调用它.

我尝试这样的东西,但我得到Uncaught TypeError:非法调用

console.log = function() {
  this.apply(window,arguments);
}.bind(console.log);

console.log('as');

这是我的目标:

console.error(例外);应该做:

console.error = function() {
  if (typeof exception.stack !== 'undefined') {
    console.error(exception.stack);
  } else {
    console.error.apply(windows,arguments);
  }
}.bind(console.error);

console.error('as');
console.error({stack: 'my stack....'});

编辑:
实际上,它适用于Firefox而不是Chrome …
这是Chrome中的一个错误https://code.google.com/p/chromium/issues/detail?id=167911

解决方法

你可以有类似的东西:
console.error = (function() {
    var error = console.error;

    return function(exception) {
        if (typeof exception.stack !== 'undefined') {
            error.call(console,exception.stack);
        } else {
            error.apply(console,arguments);
        }
    }
})();

猜你在找的JavaScript相关文章