在JS的函數嵌入2個概念:
- 實體
- 甲功能
甲功能實體是某種含有官能度「膠囊」,即,功率將多個輸入轉換爲輸出。這個膠囊就是我們所知道的「物體」。在遞歸結束時,您會發現標識Function.constructor === Function
,該標識設置了該語言的內省功能的限制。剩下的JS功能不能被語言本身訪問,因爲不存在嵌入它們的膠囊或對象。
在JS中,您無法定義獨立的「功能」,但是您創建的對象實現了可以視爲任何其他對象的功能。對象是實現功能性對象的核心對象。無論是定義命名函數還是匿名函數(通過關鍵字function
),您都將創建一個綁定到名稱(對於命名函數)或直接綁定到變量(未命名函數)的Function對象。
function foo(a, b) { return a+b; } //This function is a Function object bound to the name `foo`
var a = function(a, b) { return a+b; } //the Function object is bound to `a`
以相同的方式Array對象具有[]
運算符,它被用來訪問數組元素,則可以解釋爲()
Function對象的操作者,其用於調用其嵌入功能性。
'Function.constructor === Function' - 但本地對象是通過環境提供的,而不是通過腳本,所以這就是爲什麼這是可能的。 – pimvdb