什么时候`new Error()`比`Error()`更好?

joe*_*dle 15 javascript error-handling idiomatic

ES5语言规范清楚地表明它的Error(foo)作用与此相同new Error(foo).

但我注意到,在野外,较长的new Error(foo)形式更常见.

这有什么理由吗?

是否有使用new Error(foo)优先使用的情况Error(foo)

Ber*_*rgi 15

这有什么理由吗?

它只是习惯于总是调用构造函数new.一致性规则!

这是一个很好的做法,即使他们没有工作new,并由几个风格指南和相关工具推荐.顺便说一句,因为ES6 Error是可子类化的,它的子类将需要new.

  • @joeytwiddle实际上,`class X扩展Error` [无法实现相同的行为](http://stackoverflow.com/a/31789308/1048572),它总是在没有`new`的情况下调用构造函数时抛出. (4认同)