學習筆記 高階函式

2021-10-21 19:24:26 字數 2864 閱讀 9268

什麼是高階函式

函式作為引數

模擬foreach

// foreach 

function

foreach

(array, fn)

}let arr =[1

,3,4

,7,8

]foreach

(arr,

function

(item)

)

模擬filter

// filter 

function

filter

(array, fn)

}return results

}let arr =[1

,3,4

,7,8

]// 過濾取偶數

let returnarr =

filter

(arr,

function

(item)

)console

.log

(returnarr)

function

makefn()

}makefn()

()// 呼叫 makefn 函式返回的函式

// 或

const fn =

makefn()

fn()

模擬once函式

// once 

function

once

(fn)}}

// 宣告 pay 函式 呼叫 once

let pay =

once

(function

(money)

rmb`)}

)// 呼叫 pay 函式

// 只會支付一次

pay(5)

pay(5)

pay(

5)

使用高階函式的意義

常用高階函式

模擬map()函式

const

map=

(array, fn)

=>

return results

}let arr =[1

,2,3

,4]arr =

map(arr,

(item)

=> item * item)

console

.log

(arr)

模擬every()函式

const

every

=(array, fn)

=>

}return result

}let arr =[9

,12,13

]let r =

every

(arr,

(item)

=> item >10)

console

.log

(r)

( js中break,return,continue區別 )

模擬some()函式

const some =

(array, fn)

}return result

}let arr =[1

,3,4

,5]let r =

some

(arr,

(item)

=> item %

2===0)

console

.log

(r)

閉包

閉包的本質:函式在執行的時候會放到乙個執行棧上當函式執行完畢之後會從執行棧上移除,但是

堆上的作用域成員因為被外部引用不能釋放,因此內部函式依然可以訪問外部函式的成員

// 閉包 

function

fnb()}

const fna =

fnb(

)fna

()

// 生成計算數字的多少次冪的函式

function

makepower

(power)

}// 2次方

let power2 =

makepower(2

)// 3次方

執行以上**,在開發者工具中打斷點除錯,檢視函式執行過程。

call stack 為當前站點呼叫函式,可以在途中看到呼叫兩個匿名函式

scope 為作用域,local 為區域性作用域(裡面的變數是 number,this 指向是 window)

closure 為閉包(裡面是跟閉包相關的變數 power ),跟閉包相關的外部函式是 makepower

通過let定義的變數,他的作用域可以在 script 找到,通過var定義的變數會掛載在 global 全域性物件上

scala學習筆記 高階函式

scala混合了物件導向和函式式的特性。在函式式程式語言裡,函式是 頭等公民 也就是說函式很重要,它可以像任何其他資料型別一樣被傳遞和操作。也就是說,函式可以作為乙個值傳給乙個變數。在scala中,函式是 頭等公民 就和數字一樣。可以在變數中存放函式 val a ceil val b sqrt 當然...

Python學習筆記 高階函式

高階函式的概念是我在學習kotlin的時候才接觸到的,後來才發現很多語言都有該特性。簡單的定義為 把函式作為引數傳入另乙個函式中 例如 def add x,y,f return f x f y print add 5,6,abs 其中,abs函式作為引數傳到add函式中,add函式就可以稱為高階函式...

python高階學習筆記(一) 高階函式

filter filter 函式接收乙個 函式 f 和乙個list 這個函式 f 的作用是對每個元素進行判斷,返回 true或 false,filter 根據判斷結果自動過濾掉不符合條件的元素,返回由符合條件元素組成的新list。例如,要從乙個list 1,4,6,7,9,12,17 中刪除偶數,保...