Javascript获取调用堆栈上的函数量

时间:2016-02-10 23:58:08

标签: javascript

我正在尝试读取调用堆栈上的函数数量。 有没有可能用javascript做到这一点?

提前谢谢!

编辑据我所知,调用堆栈包含目前已经完成的功能。例如

foo(){
bar();
}

导致调用堆栈

bar
foo

我现在的问题是,是否可以获得函数的数量(在这种情况下为2)

1 个答案:

答案 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);
}