我可以知道什麼情況下,通過js引擎調用toString()和valueOf()方法,或者何時調用這些方法?toString()和valueOf()方法的應用領域
回答
toString
將值轉換爲字符串,valueOf
將其轉換爲數字。究竟哪一個被調用取決於你所問的上下文。
如果javascript期望一個字符串或試圖將對象強制爲一個字符串,它將使用toString。如果它期待一個數字,它將使用valueOf。
這條規則的例外是,當一個值同時具有toString和valueOf時,它總是調用valueOf。
var x = {
toString: function(){
return "x";
},
valueOf: function(){
return 2;
}
}
alert("String :"+x); //2
alert("Number :"+(0+x)); //2
小提琴:http://jsfiddle.net/DsGKf/
所以要小心對你想有充當字符串的東西定義的valueOf。
可以舉一個例子 – 2013-04-22 16:29:35
string + 2應該會導致一個錯誤 – 2013-04-22 16:33:22
將被轉換爲字符串 – 2013-04-22 16:37:20
- 1. 迭代javascript對象和valueOf toString方法
- 2. 私有方法和領域
- 3. Zend和多領域應用
- 4. ASP.net應用領域
- 5. toString和valueOf截斷小數點後的0 0
- 6. ASP.NET MVC 2:應用領域和路線
- 7. 在Java枚舉中覆蓋valueof()和toString()枚舉
- 8. 私人領域的公共方法
- 9. Python的私人領域與getter方法
- 10. 虛擬領域和實際領域
- 11. Javascript toString()方法
- 12. 新方法toString()
- 13. toString方法
- 14. toString方法
- 15. ToString()方法
- 16. ToString方法
- 17. 否toString方法
- 18. 應用領域設計
- 19. Android和使用領域
- 20. Django的REST框架:ModelSerializer和每個HTTP方法選擇領域
- 21. Kerberos和Kerberos領域
- 22. 集團和領域
- 23. 領域和途徑
- 24. 領域 - 反應本機和客觀C
- 25. XmlSerializer的和XmlElement的領域
- 26. 理解tostring()方法?
- 27. 重載ToString方法
- 28. toString方法如何
- 29. 應該添加toString()方法嗎?
- 30. BigInteger valueOf方法找不到符號
這一切都取決於上下文。你能給我們一些背景知道你爲什麼想知道嗎? – 2013-04-22 16:24:26