回答
String
和Boolean
是用於顯式創建該類型的對象,並且可以用作構造函數:
var s = new String("hello");
var t = new Boolean(true);
它通常是沒有必要直接使用這些構造這樣的,但它們的存在,如果,出於某種原因,你需要一個完整的字符串或布爾對象而不是一個基元。
Math
是用作作爲容器的作品舉辦了一堆數學函數命名空間的對象,如Math.min()
,Math.max()
,Math.random()
,等等......這不是一個構造函數,並且不產生其他對象通過它自己。您可以看到Math
對象here on MDN的詳細說明。
從該描述:
數學是一個內置的,其具有用於 數學常數和函數的屬性和方法的對象。不是函數對象。
與其他全局對象不同,Math不是構造函數。 Math的所有屬性和方法都是靜態的。您將常數 pi稱爲Math.PI,並將正弦函數稱爲Math.sin(x),其中x 是該方法的參數。常量在JavaScript中以實數的完整精度定義爲 。
對於不同的目的他們是不同的東西。
Window
是一個不同的野獸。這很可能與主機對象window
有關,但儘管它報告爲帶有本機代碼的function
,但Chrome瀏覽器不會讓您將其稱爲函數或構造函數。
String
是function
,因爲您需要創建function
與new
的多個實例。如果字符串是一個容器,那麼它不會是一個function
。
var str = new String();
數學是一個對象,因爲你需要一個對象,帶有實用的方法,如Math.random
的一個聲明。
// You cannot do that, so error.
var math = new Math();
從https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math
摘要數學是一個內置的對象,該對象具有用於 數學常數和函數的屬性和方法。不是函數對象。
說明與其他全局對象不同,Math不是 構造函數。 Math的所有屬性和方法都是靜態的。您將 指定爲Math.PI的常量pi,並將正弦函數作爲 Math.sin(x),其中x是方法的參數。常量定義爲 ,它具有JavaScript中實數的完整精度。
在簡單的例子中,可以看到數學對象和字符串功能之間的不同 Math
是對象,其具有的命名空間的功能
var Math = {
min : function(arg){
//code here
}
}
字符串是功能並且定義爲
function String(){
}
String.prototype.match = function(){
}
數學是JavaScript中的全局對象,沒有構造函數。所有方法和屬性都是靜態的,並且您無法使用new
關鍵字創建新對象。這就是爲什麼你將它看作是一個對象。
- 1. JavaScript:爲什麼array.push()追加兩個對象而不是一個
- 2. 將數組對象是一個String
- 3. 爲什麼CGContextRef不是一個對象?
- 4. wordpress:add_action:爲什麼第二個參數是一個數組而不是函數名
- 5. 爲什麼MarshalByRefObject.InitializeLifetimeService返回一個對象而不是ILease?
- 6. 爲什麼Liftweb的`bootstrap.liftweb.Boot`是一個類,除了一個對象?
- 7. 爲什麼Array.Length是一個int,而不是一個uint
- 8. 這個對象怎麼可能是一個對象而不是對象?
- 9. 爲什麼HttpContext是一個抽象類而不是接口?
- 10. 爲什麼java.sql.Statement是一個接口而不是抽象類?
- 11. 爲什麼這個函數console.log而不是一次20次?
- 12. T應該是一個參數,一個函數還是什麼?
- 13. 什麼/哪裏是一個函數對象的屬性?
- 14. 爲什麼在將ArrayList轉換爲String []時list.toArray()是一個對象?
- 15. 調用一個類作爲一個函數是什麼意思?
- 16. 我想理解爲什麼當返回一個Observable而不是一個數組時,我得到一個對象
- 17. 的javascript:對象不是一個函數
- 18. 對象不是一個函數錯誤
- 19. sql COUNT函數返回一個數組而不是mysqli對象?
- 20. 打印的對象是一個數組,它是一個對象
- 21. 爲什麼這不是一個單一的對象?
- 22. 爲什麼端口是一個字符串而不是一個整數?
- 23. 爲什麼這個腳本返回「'空'不是一個對象'?
- 24. 什麼時候是一個scala部分函數而不是部分函數?
- 25. Doctrine2 - 如何返回一個對象,而不是一個數組
- 26. 爲什麼一直說我的對象不是函數?
- 27. 爲什麼函數中的childNodes [i]返回undefined,但是提醒一個對象?
- 28. 從同一個類調用時,爲什麼一個被視爲綁定方法,而另一個是純函數?
- 29. jQuery:爲什麼$ .post做一個GET而不是一個POST
- 30. 給定一個函數,它是否是線性的,爲什麼?
你期待'Math'是一個函數嗎?這不像你可以稱'數學(參數)',並讓它做數學。 – user2357112
只需在控制檯輸入'Math'。你會看到它爲'對象'。在控制檯中輸入其他人。你會看到它們作爲函數 –
對我來說很有意思的是它是一個空的節點 –