为什么valueOf没有被布尔转换调用?

时间:2018-02-13 04:37:59

标签: javascript

根据MDN documentation - 实际上我到目前为止读过的每个js文档 - <div class='element'>New Class Will Be Added Before 20% Of This Div</div> 方法将对象转换为原始值。这个例子是正确的,它适用于数学运算符。

在我目前的情况下,我需要它与逻辑运算符一起使用,但它永远不会被它们调用。例如:

valueOf

结果:

var o = {valueOf: function (){return false;}};
if (o)
   console.log("o -[bool]-> true");
else
   console.log("o -[bool]-> false");
if (!o)
   console.log("not(o) -> false");
else
   console.log("not(o) -> true");
if (o == false)
   console.log("eq(o, false) -> true");
else
   console.log("eq(o, false) -> false");

为什么这样标准化?为什么没有用于布尔转换的o -[bool]-> true not(o) -> false eq(o, false) -> true 方法?

0 个答案:

没有答案