强制对象评估为 false

2023-11-26

我猜这可能是特定于应用程序的,但我使用的是node.js - 只要它在v8引擎中工作,我不介意。

我正在尝试创建一个Object评估结果为 false,例如:

var Foo = function() { return this; }
var bar = new Foo;
if (bar) // returns false;

这是否可以通过覆盖对象的某个功能来实现,例如toString?

如果有人想知道这可能有什么用例:它用于从通常返回布尔值的函数返回错误对象,但也可能遇到错误并返回我的自定义错误对象。

我希望以下任何条件都像函数返回错误值一样运行,而不必修改条件以适应非布尔值的可能性。


你能得到的最接近的就像

if (+obj)

其中一个虚假对象定义了一个.valueOf()返回的函数0 or false:

var o = {
    valueOf: function() {
        return false;
    }
};
if (+o) {
    throw unreachable();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

强制对象评估为 false 的相关文章

随机推荐