高階函式:函式引數如果是函式,或者這個函式返回乙個新的函式
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作為函式的名稱,下圖為乙個...