> For the complete documentation index, see [llms.txt](https://jen-hsuan-hsieh.gitbook.io/javascript-node-js/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://jen-hsuan-hsieh.gitbook.io/javascript-node-js/chapter1/12javascript-quan-gong-lve-ff1a-ke-fu-js-de-qi-guai-bu-fen/123wu-jian-yu-han-shu/1235han-shu-jiu-shi-wu-jian.md).

# 1.2.3.5.函數就是物件

* 一級函式(first class function)
  * JavaScript的函數就是物件
    * 可以對類別做的事都可以對函數做
    * 可以指派一個變數的值為函數
    * 可以將函式當成參數傳入另一個函式
    * 可以用object literals創造函數
* 函數可以有自己的屬性跟方法
* 隱藏版的特殊屬性
  * NAME property: 名稱屬性, 在JavaScript函數可以是沒有名字的 (匿名函數)
  * CODE property: 程式屬性, 所寫的程式

```
//NAME property: greet
//CODE property: console.log('hi');
function greet(){
console.log('hi');
}

//在函數中創造屬性
greet.language = 'english';
```

![](https://3195929128-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M4M0G8GO2MkGtHfarAf%2F-M4M0IHoyFvfGKjf7P-T%2F-M4M0MJ40St5XkbfAK0T%2F%E6%9C%AA%E5%91%BD45435345.jpg?generation=1586302920472420\&alt=media)
