gpt4 book ai didi

javascript - 停止构造函数

转载 作者:行者123 更新时间:2023-12-02 06:34:47 24 4
gpt4 key购买 nike

我正在尝试将一种构造函数模式实现到项目的库中。但是,我想在返回对象之前检查是否传递了某些条件。如果不满足这些条件,那么我想停止构造函数并返回 false

但是,我注意到无论我设置什么作为返回值,总是返回一个对象!

即使我这样做:

new function () { return false; }

结果仍然是一个Object对象:

在 Chrome 中:

Chrome console

在 Firefox 中:

Firefox console

有什么方法可以让 Javascript 中的构造函数失败吗?

最佳答案

If those conditions aren't met, then I want to stop the constructor and return false.

你不能。构造函数的返回值将被忽略,除非它是一个非 null 对象。任何原始值(或 null)都会被 new 表达式忽略。

如果您真的想要返回一个标志值,您可以这样做,但它必须是一个对象。 (但这是一个坏主意,更多内容见下文。)例如:

// The constructor
function Foo(num) {
if (num < 27) {
return Foo.BAD_ARG; // This is a bad idea, see the right way below
}
this.num = num;
}
Foo.BAD_ARG = {}; // Our special "bad argument" object

Is there any way to have a constructor fail in Javascript?

是:抛出异常:

function Foo(num) {
if (num < 27) {
throw "`num` must be >= 27";
}
this.num = num;
}

关于javascript - 停止构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22180785/

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