OO JS是否有将实例对象转换为布尔值的机制?我希望能够在条件语句中直接使用自定义实例对象,并在!!(new Foo(0)) === false
,!!(new Foo(1)) === true
的行中进行断言。
Python有__nonzero__
和__len__
(请参阅here)
Ruby有to_bool
。
JS如何为字符串文字""
和零0
执行此操作?
答案 0 :(得分:3)
不,JS没有提供用于转换为布尔值的陷阱方法。根据语言规则,值的真实性为statically determined,不能更改。
您应该为您的实例提供一个明确调用的方法,例如isValid()
,isTruthy()
,isEmpty()
或您的对象所代表的任何概念。