自定義?toString(或者?valueOf)方法,每次調(diào)用改變一次返回值,從而滿足判斷條件。
const a= { i : 1,
? ? ? ? ? ? ? ? ?toString : function() {
? ? ? ? ? ? ? ? ? ? ? returna.i++;?
? ? ? ? ? ? ? }
? }
if (a==1&&a==2&&a==3) {
? ? console.log('Hello World!');
}
當(dāng)使用 == 時,如果兩個參數(shù)的類型不一樣,那么 JS 會嘗試將其中一個的類型轉(zhuǎn)換為和另一個相同。在這里左邊對象,右邊數(shù)字的情況下,會首先嘗試調(diào)用 valueOf(如果可以調(diào)用的話)來將對象轉(zhuǎn)換為數(shù)字,如果失敗,再調(diào)用 toString。