在不使用new关键字的情况下在JavaScript中抛出错误

时间:2017-08-25 09:19:15

标签: javascript

我已经看过教程中使用的代码:

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"
*/

0 个答案:

没有答案