JS获取调用栈信息

我们在某些特殊场景会想要获取当前的调用栈信息,比如当前执行的代码在哪个文件,在第几行触发的。

借助 new Error() 可以获取调用栈信息。

console.trace()也能跟踪堆栈信息,但是不好格式化输出

let stack = (new Error()).stack
console.log(stack)

我们来格式化一下

function formatStack() {
  let stack = (new Error()).stack
  let msg = stack.toString().split('\n')[1] // 格式化
  console.log(msg)
}
formatStack()