您可以覆蓋的console.log和調用錯誤()。在谷歌Chrome瀏覽器顯示行號。
谷歌瀏覽器堆棧是這樣的:
Error
at Error (<anonymous>)
at Console.console.log (http://localhost/test.js:6:27)
at foo (http://localhost/test.js:13:13)
at http://localhost/test.js:16:1
因此,代碼需要獲取3行,然後刪除"at http://localhost"
和字符數
(function(log) {
console.log = function(o) {
var stack = Error().stack.split('\n');
log.call(console, JSON.stringify(o) + ', ' + stack[3].
replace(/.*http:\/\/[^\/]*|:[0-9]+\)$/g, ''));
};
})(console.log);
function foo() {
console.log({foo: 'bar'});
}
foo();
'的console.log()'不會返回任何值...所以這是不可能與console.log –
事實上'myObj'是'myLog',只需指定它 –
從技術上講,你可以覆蓋控制檯的原型函數,但這似乎是一個可怕的想法。 – Fenixp