1. 程式人生 > 其它 >♣ 閉包理解記憶體洩露回收

♣ 閉包理解記憶體洩露回收

♠ 閉包理解

JS中函式是一等公民

在JavaScript中,函式是非常重要的,並且是一等公民:那麼就意味著函式的使用是非常靈活的;函式可以作為另外一個函式的引數,也可以作為另外一個函式的返回值來使用;自己編寫高階函式使用內建的高階函式。

點選檢視程式碼
// function foo(arg) {
//   console.log("foo", arg)
// }

// foo(123)

// 將函式作為另外一個函式的引數
// function foo(aaaaa) {
//   aaaaa()
// }
// function bar() {
//   console.log("bar")
// }
// foo(bar)
function calc(num1, num2, calcFn) {
  console.log(calcFn(num1, num2))
}

function add(num1, num2) {
  return num1 + num2
}

function sub(num1, num2) {
  return num1 - num2
}

function mul(num1, num2) {
  return num1 * num2
}

var m = 20
var n = 30

calc(m, n, mul)
點選檢視程式碼
// js語法允許函式內部再定義函式
// function foo() {
//   function bar() {
//     console.log("bar")
//   }

//   return bar
// }

// var fn = foo()
// fn()

function makeAdder(count) {
  function add(num) {
    return count + num
  }

  return add
}

var add5 = makeAdder(5)
console.log(add5(6))
console.log(add5(10))

var add10 = makeAdder(10)
var add100 = makeAdder(100)

// 高階函式: 把一個函式如果接受另外一個函式作為引數,或者該函式會返回另外一個函式作為返回值的函式, 那麼這個函式就稱之為是一個高階函式