♣ 閉包理解記憶體洩露回收
阿新 • • 發佈:2021-11-04
♠ 閉包理解
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) // 高階函式: 把一個函式如果接受另外一個函式作為引數,或者該函式會返回另外一個函式作為返回值的函式, 那麼這個函式就稱之為是一個高階函式