0
问题是解决了这个神奇的条件:Javascript idiosyncrasy:valueOf澄清if语句?
var magic = ???;
if(magic < 1 && magic > 1){
console.log('Inside')
}
//magic solution 1 - WORKS
var magic = (function(){
var val = -2;
return {
valueOf(){
return val = val + 2;
}
}
})();
// magic solution 2 - DOESN'T WORK
var magic = {
val: -2,
valueOf: function(){
return this.val + 2;
}
};
有人能澄清这个片段是如何工作的?我以为两者都是一样的。
这两个例子都可以正常工作,但它们甚至都不是相同的,所以如果第二个不起作用,那么您可能会错误地使用它,但是因为您没有真正向我们展示您打算如何使用它,甚至要求一个适当的问题,这很难回答? – adeneo
@adeneo对于第二个魔法对象它不符合条件..所以问题是为什么它不? –