js中valueOf方法的使用


    今天一位剛畢業的同事問了我一個問題,為什么這段代碼執行結果是-1.代碼如下:

    

var o = {
     valueOf: function(){
           return -1;
     }
};
o = +o;

當時我也是懵逼的,納尼?沒有調用valueOf方法,他怎么自己執行了。經過網上查閱,最終知曉了原因。

valueOf()方法和toString()方法是一樣的,都會在后台進行隱式的調用,在 o = +o時,等號右邊就已經調用了valueOf(),相當於 o = +(-1);所以,最終結果o為-1.

謹以此紀念長時間不看基礎知識,導致的一些知識體系的漏洞。

大家共勉。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM