在javaScript中函数就是一个普通的对象
所以
函数可以存储在变量中
函数可以作为参数
函数可以作为返回值

1.函数可以存储在变量中

  1. // 函数就是一个普通的对象 所以它可以存储来变量中
  2. let fn = function () {
  3. console.log('Hello First-class Function')
  4. }
  5. fn()

2.函数可以作为参数

  1. // 函数就是一个普通的对象 函数可以作为参数
  2. function forEach (array, fn) {
  3. for (let i = 0; i < array.length; i++) {
  4. fn(array[i])
  5. }
  6. }

3.函数可以作为返回值

  1. // 函数就是一个普通的对象 函数可以作为返回值
  2. // once
  3. function once (fn) {
  4. let done = false
  5. return function () {
  6. if (!done) {
  7. done = true
  8. return fn.apply(this, arguments)
  9. }
  10. }
  11. }
  12. let pay = once(function (money) {
  13. console.log(`支付:${money} RMB`)
  14. })
  15. // 只会支付一次
  16. pay(5)
  17. pay(5)
  18. pay(5)