在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 關(guān)于JS中奇怪的特性

關(guān)于JS中奇怪的特性

var a = {
    value:2,
    toString:function()
    {
        console.log("........");
        return ++this.value;
    }
}

if(a==3 && a==4){
    console.log("JS is amazing");
}

如上,用toString就會(huì)輸出"JS is amazing",我嘗試替換了比如toLocaleString就不會(huì)輸出,這是JS什么特性造就的?

回答
編輯回答
冷溫柔

在判斷的時(shí)候,做隱式轉(zhuǎn)換會(huì)調(diào)用toString方法,如果 在對(duì)象中重寫了就不會(huì)去原型鏈上找,替換成toLocaleString它會(huì)找到原型上的toString方法

2017年8月24日 10:20
編輯回答
好難瘦

當(dāng)在使用==而不是恒等時(shí),如果原始值不相等,會(huì)觸發(fā)隱式轉(zhuǎn)換,即調(diào)用左值的toString方法轉(zhuǎn)化為字符串再判斷是否相等,所以當(dāng)你把toString換成toLocaleString就無法實(shí)現(xiàn).

2017年6月8日 21:06