JavaScript中`new Error("Error")`是什么?作用及相关疑问解答
关于
new Error()运行逻辑的解释 Error本身就是JavaScript内置的构造函数,和你自定义的构造函数本质完全一致,并不是你以为的“非函数”。
核心逻辑拆解
- JavaScript的内置错误类型(包括
Error、TypeError、RangeError等)全部都是语言预定义的构造函数,专门用来生成错误实例对象。 - 你写的
let a = new Error("Error")就是标准的构造函数调用方式:new关键字会触发Error构造函数的逻辑,创建一个包含错误信息(message)、调用栈(stack)等属性的Error实例对象,所以代码能正常运行。 - 额外补充:
Error构造函数有个特殊的语法糖——就算不用new,直接写Error("Error")也能返回一个合法的Error实例。这是JavaScript为了简化错误抛出做的特殊处理,和普通自定义构造函数(不加new调用会返回undefined或执行函数内逻辑)不一样。
你可以直接打印typeof Error验证,结果会是"function",这就证明它确实是个构造函数。
内容的提问来源于stack exchange,提问作者Swayam Pattanaik
相关产品推荐
相关产品推荐

