OO Javascript是否具有`to_bool`或`__len__`等价物?

时间:2016-05-05 16:08:00

标签: javascript oop casting boolean instance

OO JS是否有将实例对象转换为布尔值的机制?我希望能够在条件语句中直接使用自定义实例对象,并在!!(new Foo(0)) === false!!(new Foo(1)) === true的行中进行断言。

  • Python有__nonzero____len__(请参阅here

  • Ruby有to_bool

JS如何为字符串文字""和零0执行此操作?

1 个答案:

答案 0 :(得分:3)

不,JS没有提供用于转换为布尔值的陷阱方法。根据语言规则,值的真实性为statically determined,不能更改。

您应该为您的实例提供一个明确调用的方法,例如isValid()isTruthy()isEmpty()或您的对象所代表的任何概念。