我正在尝试读取调用堆栈上的函数数量。 有没有可能用javascript做到这一点?
提前谢谢!
编辑据我所知,调用堆栈包含目前已经完成的功能。例如
foo(){
bar();
}
导致调用堆栈
bar
foo
我现在的问题是,是否可以获得函数的数量(在这种情况下为2)
答案 0 :(得分:2)
这个问题缺乏细节,所以我假设以下规范:输出堆栈跟踪中函数数量的计数。
首先通过构造错误来获取堆栈跟踪。
function getStack() {
return new Error().stack;
}
堆栈跟踪中的每个调用都用新行分隔,因此我们可以对它们进行计数:
function getStackCount() {
return new Error().stack.split('\n').length;
}
要调整此处的函数调用,您可以减去两个(new Error()
一个,getStackCount()
一个:
function getStackCount() {
return Math.max(new Error().stack.split('\n').length - 2, 0);
}