我不明白为什么Object.setPrototypeOf(this, DatabaseConnectionError.prototype);
需要在下面的源代码。
export class DatabaseConnectionError extends Error {
reason = "Error connecting to database";
constructor() {
super("Error connecting to database");
Object.setPrototypeOf(this, DatabaseConnectionError.prototype);
}
}
1条答案
按热度按时间nnt7mjpx1#
示例化一个类会导致示例在默认情况下从类继承(在其原型链中具有类的原型),所以不应该需要显式地将原型设置为类的原型。
虽然下面不是这种情况,但这里有一个类似的场景:在构造类之后设置原型允许示例例如。从不同类继承方法。
注意:这会混淆对象是从哪个类构造的;见上文第三个日志。
无论如何,我认为你应该更喜欢一个合理的原型链,而不是上面的任何东西。