前端面試考點(diǎn)之函數(shù)柯里化

1、什么事柯里化

在計(jì)算機(jī)科學(xué)中,柯里化(Currying)是把接受多個(gè)參數(shù)的函數(shù)變換成接受一個(gè)單一參數(shù)(最初函數(shù)的第一個(gè)參數(shù))的函數(shù),并且返回接受余下的參數(shù)且返回結(jié)果的新函數(shù)的技術(shù)??吕锘哪康氖菧p少代碼冗余。它可以實(shí)現(xiàn)參數(shù)復(fù)用、提前確認(rèn)、延遲運(yùn)行等。

比如我們常見的add方法:

//?add(1);????????????//?1

//?add(1)(2);?????//?3

//?add(1)(2)(3); //?6

//?add(1)(2,?3);? //?6

//?add(1,?2)(3);? //?6

add(1,?2,?3);???? //?6

2、柯里化的封裝

3、常見的考題

實(shí)現(xiàn)一個(gè)add方法,使計(jì)算結(jié)果能夠滿足如下預(yù)期:add(1)(2)(3)=6;add(1,2,3)(4)=10;add(1)(2)(3)(4)(5)=15;

總結(jié):函數(shù)的柯里化,是 Javascript 中函數(shù)式編程的一個(gè)重要概念。它返回的,是一個(gè)函數(shù)的函數(shù)。其實(shí)現(xiàn)方式,需要依賴參數(shù)以及遞歸,通過拆分參數(shù)的方式,來調(diào)用一個(gè)多參數(shù)的函數(shù)方法,以達(dá)到減少代碼冗余,增加可讀性的目的。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容