等于1的同时等于2

网上看到的一道面试题,感觉没太实际的用途,正好前段时间看 你不知道的javascript,里面有讲解,顺手抄来,其实就是利用了了对象与基本数据类型比较要转换为基本类型的隐式转换--调用对象的toString和valueOf方法而已

var o={
        a:0,
        valueOf:function(){
            return ++this.a;
        }
    }
    if(o==1 && o==2 && o==3){
        console.log(1);
    }else{
        console.log(2);
    }

同理

var o={
        a:0,
        toString:function(){
            return ++this.a;
        }
    }
    if(o==1 && o==2 && o==3){
        console.log(1);
    }else{
        console.log(2);
    }
需要注意何时先调用toString还是valueOf

猜你喜欢

转载自blog.csdn.net/zzgzzg00/article/details/79357330
今日推荐