2015-09-08 17 views
1

我知道如果我聲稱函數是數據類型的話,對很多程序員來說這將是一種褻瀆。是否正確地說JS函數可以是一個數據類型

但是,如果你想一想,你不覺得函數是類似於JS中的數據類型。職能是JS中的一等公民。這不等同於理論上類似於數據類型的函數嗎?

回答

4

因此到MDN,功能是:

在JavaScript中,函數是第一類對象,即,它們是對象,並且可以進行操作和通過周圍就像任何其他對象。具體而言,它們是Function對象。

函數是JavaScript中的基本構建模塊之一。函數是一個JavaScript過程 - 一組執行任務或計算值的語句。要使用一個函數,你必須在你希望調用它的範圍內的某個地方定義它。

data types

Six data types that are primitives: 
    Boolean 
    Null 
    Undefined 
    Number 
    String 
    Symbol (new in ECMAScript 6) 
and Object 

您還可以檢查DevDocs看到更多的功能以及它們是如何對象。閱讀這個Professional JS會讓你的意見更清晰。 Javascript Garden作爲first-class對象提供對功能的更好理解。

對象是基本的JavaScript數據類型,而函數對象是其中的類型之一。所以,答案是不行,調用JS函數的數據類型爲是不對的。

1

這只是一個描述選擇,真的。
函數和數組添加特定於基本「對象」數據類型的一般定義的內容,並且大部分語言處理它們的特性。

由於某種原因,ECMA不稱他們爲數據類型。
他們是那裏的老闆。

相關問題