Does OO Javascript have a `to_bool` or `__len__` equivalent?

纵饮孤独 提交于 2019-11-27 08:32:12

问题


Does OO JS have a mechanism for casting instance objects to boolean? I would like to be able to use custom instance objects directly in conditionals, and make assertions along the lines of !!(new Foo(0)) === false, !!(new Foo(1)) === true.

  • Python has __nonzero__ and __len__ (see here)

  • Ruby has to_bool.

How does JS do this for String literals "" and zero 0?


回答1:


No, JS does not provide a trap method for casting to boolean. Truthiness of a value is statically determined by the language rules and cannot be changed.

You should give your instances a method to be explicitly invoked like isValid(), isTruthy(), isEmpty() or whatever concept your object represents.



来源:https://stackoverflow.com/questions/37055255/does-oo-javascript-have-a-to-bool-or-len-equivalent

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!