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對於第二個魔法對象它不符合條件..所以問題是爲什麼它不? –