2013-02-08 23 views
0

過去,我被告知:「JavaScript中的所有內容都是函數」。我很好奇這有多少真相。作爲一個例子,我引用了Chrome JS控制檯:JavaScript中的所有內容都是一個函數

文字,操作員呢?

+2

你列出的功能的東西,但不是萬能的。我從來沒有聽過任何人親自說過有關JavaScript的內容。 http://stackoverflow.com/questions/3449596/every-object-is-a-function-and-every-function-is-object-which-is-correct – numbers1311407 2013-02-08 19:11:26

+1

「文字」是指某些值如何表示在源代碼和解析器知道如何解釋它。在這個層面上,函數的概念甚至不存在。在這一點上,你正在比較蘋果和橙子。不知道該說什麼關於「運營商」......他們完全是一個不同的野獸,把它們包括在這個比較中也是沒有意義的。 – 2013-02-08 19:19:32

+1

你列出的東西都是構造函數。這就是Javascript定義類的方式(或者像類一樣)。這並不意味着構建的對象(實例)本身就是函數。例如。在'var s = new String()'中,'s'不是函數。 – Stuart 2013-02-08 19:23:32

回答

2

「在Javascript中的一切都是一個函數」

需要的引證。

您的證明實際上證明構造函數是函數。而構造函數是JavaScript對類最接近的東西的句柄。

試試這個:

> typeof String 
"function" 

> var a = new String("testing123"); 
> typeof a 
"object" 

但實際上,功能也只是一種特殊類型的對象。

所以我會修改你的聲明,而不是說:

幾乎一切都在JavaScript是一個對象,包括函數

+0

完美,謝謝。我沒有引用我的引用,這只是我似乎記得有人說,顯然這是錯的。 – calvintennant 2013-02-08 19:27:22

+0

而不是說「JavaScript中的幾乎所有東西都是一個對象,包括函數」,最好是更具體一些,並說「不是*原語的東西*是一個對象。」,這包括函數。請注意,'typeof'並不總是可靠的,因爲'typeof null'是'「object」',但實際上,它是一個原始的。 – d4nyll 2017-05-18 09:00:30

-1

不知道一個函數,但我一直聽說JavaScript中的所有東西都是一個對象。

+0

[(不是)JavaScript中的所有內容都是對象](http://blog.brew.com.hk/not-everything-in-javascript-is-an-object/)。函數是JavaScript中的一個對象。 – d4nyll 2017-05-18 08:59:03

相關問題