这是一个简单的console.log函数,可以将内容输出到控制台:
function u(x) { console.log(x); } // line 41
但是这对于调试来说并不是完全有效的,因为浏览器将始终输出调用console.log()的行,在这种情况下是第41行。
错误或其他可能在第741行,但没关系。我意识到我可以一直使用console.log而不是创建一个较短的自定义函数,但如果我不需要,那么......
你怎么能(x)显示它被调用的实际行?
干杯!
答案 0 :(得分:1)
您提出了一个棘手的问题,因为我必须处理异常,以及正确的方法是什么。通常在Java等语言中,您会传递异常而不是错误消息。你可以做点什么
u(new Error("this is my error"))
在function(e)
中你可以console.log(e)
打印当前执行的正确堆栈。
关于如何获取实际行号,请查看How to get JavaScript caller function line number? How to get JavaScript caller source URL?。
希望这会有所帮助。
答案 1 :(得分:1)
将行号发送到函数非常简单。如果没有更大的解决方案,我不确定跟踪是如此简单。
function u(x, l){
console.log(x + ' on line ' + l);
}
u('test', new Error().lineNumber)
编辑: 但是,我知道这只适用于FF和Opera。这里有一个跨浏览器解决方案https://github.com/stacktracejs/stacktrace.js
答案 2 :(得分:0)
至少在chrome中,您可以调用console.trace()
将堆栈跟踪记录到控制台。
编辑:
function u(x) {
console.log(x);
console.trace();
}
应该给你你想要的东西。