OO Javascript 是否具有“to_bool”或“__len__”等价物?
Does OO Javascript have a `to_bool` or `__len__` equivalent?
OO JS 是否有将实例对象转换为布尔值的机制?我希望能够直接在条件中使用自定义实例对象,并按照 !!(new Foo(0)) === false
、!!(new Foo(1)) === true
.
行进行断言
Python 有 __nonzero__
和 __len__
(参见 here)
Ruby 有 to_bool
.
JS 如何对字符串文字 ""
和零 0
执行此操作?
不,JS 不提供转换为布尔值的陷阱方法。根据语言规则,值的真实性 statically determined 无法更改。
您应该为您的实例提供一个显式调用的方法,例如 isValid()
、isTruthy()
、isEmpty()
或您的对象代表的任何概念。
OO JS 是否有将实例对象转换为布尔值的机制?我希望能够直接在条件中使用自定义实例对象,并按照 !!(new Foo(0)) === false
、!!(new Foo(1)) === true
.
Python 有
__nonzero__
和__len__
(参见 here)Ruby 有
to_bool
.
JS 如何对字符串文字 ""
和零 0
执行此操作?
不,JS 不提供转换为布尔值的陷阱方法。根据语言规则,值的真实性 statically determined 无法更改。
您应该为您的实例提供一个显式调用的方法,例如 isValid()
、isTruthy()
、isEmpty()
或您的对象代表的任何概念。