使用Javascript ES5创建自定义错误

时间:2018-05-17 00:29:11

标签: javascript ecmascript-5

我正在阅读Mozilla网络文档中关于如何在Javascript中扩展内置错误的以下片段。我正在使用ES5,因为我在使用ES6语法时遇到了问题。

我不明白的是:"Code Chunk C"是否必要?

"Code Chunk B"将CustomError的原型设置为一个对象,其(1)原型为Error.prototype,(2)将具有名为constructor的属性,其值为{{1 }}。

在以下代码块(Error),"Code Chunk C"中,根据我的理解,将Object.setPrototypeOf的原型设置为CustomError。这很令人困惑,我们不是只将原型设置为Error吗?我使用和不使用此代码块测试了代码,在这两种情况下,结果都是正确的:

Error.prototype

const error = CustomError()

error.__proto__ === BaseError.prototype // True

这不是我的预期,因为我不希望error.__proto__.__proto__ === Error.prototype // TrueError.prototype相同。

有人可以回答以下问题:

1)如果首先运行Error,是否需要"Code Chunk C"? 2)考虑到我之前解释过的困惑,"Code Chunk B""Code Chunk B"如何做同样的事情?

提前致谢!

"Code Chunk C"

0 个答案:

没有答案