函数作为返回值

因为函数名在ECMAScript中就是变量,所以函数可以用在任何可 以使用变量的地方。这意味着不仅可以把函数作为参数传给另一个函 数,而且还可以在一个函数中返回另一个函数。

  1. function f() {
  2. var n = 0
  3. return (function() {
  4. console.log(n++) // 子函数,每次修改父函数的 n + 1,并且通过父函数返回到外部
  5. })
  6. }
  7. add = f()
  8. add() // 0
  9. add() // 1
  10. add() // 2