我正在使用简单的日志功能。当我使用登录我的代码时,它会在写入的行号处显示控制台消息,而不是它正在调用的位置(显然它会)。是否有可能获得我正在使用它来正确调试代码的行号?提前谢谢!
/**
* Description: Console log
* @param {Object} p_sMessage
*/
function log(p_sMessage) {
if(!Debug) { return; }
else { if(window.console) { console.log(p_sMessage); }}
}
答案 0 :(得分:2)
使用此函数获取调用者的行号:
function getLineNumber(){
return (new Error).stack.split("\n")[4]
}
答案 1 :(得分:2)
如何将代码更改为:
log = Debug && window.console
? window.console.log.bind(window.console)
: function() {};
这样log
只会充当window.console.log
的别名,因此不会向堆栈跟踪添加另一个步骤。