gpt4 book ai didi

JavaScript/Node : checking instanceof for parent method

转载 作者:行者123 更新时间:2023-11-30 09:19:01 25 4
gpt4 key购买 nike

在 Solid 的 NodeJS 实现中,我可以看到以下内容:

module.exports = HTTPError

function HTTPError (status, message) {
if (!(this instanceof HTTPError)) {
return new HTTPError(status, message)
}

这背后的意义是什么?在哪种情况下,所述方法实例不会通过 instanceof 检查?我认为这不是多余的,正如我现在所想的那样,但找不到其背后的逻辑。

Link to mentioned code on GitHub

最佳答案

差异的发生取决于 new 关键字的存在。考虑以下示例:

function HTTPError(status, message) {
if (!(this instanceof HTTPError)) {
console.log("called without new. Status is " + status);
return new HTTPError(status, message)
} else {
console.log("called with new. Status is " + status);
}
this.status = status;
}

const i = HTTPError(500);
const i2 = new HTTPError(400);
console.log(i);
console.log(i2);

关于JavaScript/Node : checking instanceof for parent method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53060722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com