如何获取调用函数的代码行号

时间:2016-10-31 13:35:47

标签: javascript jquery function jquery-ui

我搜索了很多但无法得到正确/更新的答案( arguments.caller.callee似乎不存在)。我想知道调用特定函数的代码行号。我得到了this解决方案,可以检索函数调用者名称。

但我在JQuery UI droppable中调用我的函数。 例如:

$("#id").droppable({

stop: function(e,u){

   main(); // I want this line number
}

});

这就是我想知道行号的原因。有什么办法吗?

2 个答案:

答案 0 :(得分:1)

如果您使用console.error(),则会显示调用堆栈和行号(至少在Chrome中,当您点击黑色小箭头时):

function foo(){
    bar();
}

function bar(){
    console.error("hello");
}

foo();

将显示:

enter image description here

检查这个小提琴(console.error在代码段中无效):https://jsfiddle.net/fs1qqe77/

答案 1 :(得分:0)

我尝试使用try catch throw

注意:代码段在iframe内部工作,因此行不正确。



var i = 2016;
i++;
var str = "Happy new year "+i;

try{
clog();throw new error("l"); 
}catch(e){
console.log("current line: "+e.stack.split(" at ")[1]);//current file and line
}


function clog(){
console.log(str);
}