我已经看过教程中使用的代码:
Error().stack
我工作得很好。抛出错误,可以将调用堆栈打印到控制台。
但这怎么可能?
我很确定必须使用new-keyword创建一个错误对象:new Error()
如果有人在没有新的情况下理解使用情况,那么我会很感激他/她的答案。
完整的代码:
function funcA(){
funcB();
}
function funcB(){
funcC();
}
function funcC(){
console.log(Error().stack); //Error is only used to show the call stack
}
funcA();
/*console output
"Error
at funcC (example.js:15:17) <-- funcC is at the top of the callstack because it was called last
at funcB (example.js:12:5)
at funcA (example.js:9:5) <-- funcA is at the bottom of the call stack because it was called first
at example.js:17:1"
*/