保留行号的自定义console.log

时间:2014-09-08 05:31:24

标签: javascript

我正在尝试为日志输出添加一些前缀,但它在Chrome中效果不佳:

function getlog(p) {  
  return function() { 
  var mainArguments = [p].concat.call(arguments);
  console.log.bind(console).apply(console, mainArguments); }
}

最简单的解决方案很有效:console.log.bind(console),但我想添加其他文本。

相关主题:

console.log wrapper that keeps line numbers and supports most methods?

1 个答案:

答案 0 :(得分:0)

在非数组(甚至类似数组的对象)上使用Array.prototype.concat()会导致它将对象本身添加到结果数组而不是其内容中。您的代码实际上并未在[p]调用中使用concat(),只是简单地使用它来间接访问Array.prototype.concat()

试试这个:

function getlog(p) {  
    return function() { 
        var mainArguments = [p].concat(Array.prototype.slice.call(arguments));
        console.log.apply(console, mainArguments); 
    };
}