强制对象评估为false

时间:2013-08-11 19:45:45

标签: javascript node.js

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

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

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

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

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

我希望以下任何条件都像是函数返回false值而不必修改条件以适应非布尔值的可能性。

1 个答案:

答案 0 :(得分:4)

你最接近的就像是

if (+obj)

虚假对象定义返回.valueOf()0的{​​{1}}函数:

false