console.trace API 支持可选参数,输出的效果和 console.log / console.info 类似。但是除了输出参数指定的内容之外,还会连带将当前的调用堆栈一起输出。可以看 MDN 中给出的一个例子:
function foo() {
function bar() {
console.trace();
}
bar();
}
foo();输出的结果类似:
bar
foo
<anonymous>其中,<anonymous> 是因为 foo 函数是在 console 中直接运行的。当然,这个只能在调试阶段进行代码的检查。如果需要在线上环境,对可能出问题的地方收集调用堆栈信息,直接使用 console.trace 就不满足需求了。可以转而使用 Error 中的 stack 字段:
function foo() {
function bar() {
const error = new Error();
console.log(error.stack);
}
bar();
}
foo();输出结果类似:
Error
at bar (<anonymous>:3:19)
at foo (<anonymous>:6:3)
at <anonymous>:9:1