高階函式的應用

2021-09-26 21:11:02 字數 2035 閱讀 5799

高階函式:函式引數如果是函式,或者這個函式返回乙個新的函式

aop(面相切面程式設計):主要作用是把一些跟核心業務邏輯模組無關的功能抽離出來。

例如:日誌統計,異常處理等。把這些功能抽離出來後,通過"動態植入"的方法,摻入到業務邏輯模組中。這樣做的好處是保證業務邏輯模組的純淨和高內聚,其次可以方便的復用日誌統計等功能模組

function

say(who)

function.prototype.

before

=function

(beforefunc)

}// beforesay 是乙個包裝後的函式

let beforesay = say.

before((

)=>

)beforesay

('我');

// 結果:

// 開始說話

// 我hello

function

say(who)

function.prototype.

after

=function

(afterfunc)

}say = say.

after((

)=>

)say

('我');

// 結果:

// 我hello

// 結束說話

class

transaction

}let transaction =

newtransaction()

;let

oldfunc=(

)=>

transaction.

perform

(oldfunc,[,

close()

},,close()

}]);

// 結果:

// 初始化1

// 初始化2

// 原有的邏輯

// 關閉1

// 關閉2

// 判斷資料型別

// typeof instanceof contructor object.prototype.tostring.call

function

istype

(type)

}// isstring isarray isboolean

let types =

['string'

,'boolean'

,'number'

,'null'

,'undefined'];

let utils =

;// 工具庫

for(

let i =

0; i< types.length;i++

)let flag = utils.

isstring

('hello');

console.

log(flag)

;

將以下函式柯里化

function

fn(a,b,c)

function

currying

(fn)

else

}return next;

// es5 寫法

// return function() else

// }

}let add =

currying

((args)

=>

return sum;})

add(1)

;add(2

,3);

add(4)

;let sum =

add(5)

();console.

log(sum)

;// 15

柯里化與反柯里化可參考 **函式柯里化與反柯里化。

EXCEL if 函式的高階應用

if 函式的巢狀使用 如果按等級來判斷某個變數,if函式的格式如下 if e2 85,優 if e2 75,良 if e2 60,及格 不及格 函式從左向右執行。首先計算e2 85,如果該表示式成立,則顯示 優 如果不成立就繼續計算e2 75,如果該表示式成立,則顯示 良 否則繼續計算e2 60,如...

python函式的高階應用詳解

函式是我們所熟知的,在python中函式的定義格式如下 def 函式名 形式引數 函式體 函式的封裝就是實現 塊的復用,python內建了一些基礎的函式,開發者也可以自己定義函式,函式只能先定義,再進行呼叫。1 程式遇到函式呼叫的情況時,暫停執行 2 將實際引數值傳遞給函式引數 3 執行函式體語句 ...

Erlang匿名函式及函式的高階應用

erlang 作為一種函式式程式語言,和其他的函式式程式語言一樣具有lambda函式,在erlang中也稱為匿名函式,同時函式也可以賦值給變數或作為引數進行傳遞,此處對erlang 中的匿名函式及級高階應用作簡要介紹。一 匿名函式 erlang 中匿名函式在定義時使用fun作為函式的名稱,下圖為乙個...