我可以知道什麼情況下,通過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. 重定義函數的'toString'和'valueOf'
- 3. 私有方法和領域
- 4. valueOf方法圖
- 5. Zend和多領域應用
- 6. 在Javascript中加入()vs toString()vs valueOf()
- 7. ASP.net應用領域
- 8. toString和valueOf截斷小數點後的0 0
- 9. 調用靜態方法/領域
- 10. ASP.NET MVC 2:應用領域和路線
- 11. 在Java枚舉中覆蓋valueof()和toString()枚舉
- 12. WWW ::機械化領域的方法
- 13. 私人領域的公共方法
- 14. Python的私人領域與getter方法
- 15. 領域對象的equals方法
- 16. 虛擬領域和實際領域
- 17. 提高的一個varchar領域並應用於其它領域
- 18. 應用領域設計
- 19. toString方法
- 20. toString方法
- 21. ToString()方法
- 22. 否toString方法
- 23. ToString方法
- 24. toString方法
- 25. Javascript toString()方法
- 26. ArrayList toString()方法
- 27. toString方法
- 28. 新方法toString()
- 29. UFT應用領域 - 如何關聯的網絡中添加到應用領域
- 30. Android和使用領域
這一切都取決於上下文。你能給我們一些背景知道你爲什麼想知道嗎? – 2013-04-22 16:24:26