> 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';
```

![](/files/-M4M0MJ40St5XkbfAK0T)
