1、高階函數(shù)
- 在數(shù)學(xué)和計(jì)算機(jī)科學(xué)中,高階函數(shù)是至少滿足下列一個(gè)條件的函數(shù):
接受一個(gè)或多個(gè)函數(shù)作為輸入
返回一個(gè)函數(shù)
2、閉包
- 將函數(shù)作為一個(gè)返回值的函數(shù)是高階函數(shù),我們也稱(chēng)為閉包
- 閉包的好處
1 通過(guò)閉包可以創(chuàng)建一些只要當(dāng)前函數(shù)能訪問(wèn)的變量
2 可以將一些私有數(shù)據(jù)藏到閉包中 - 形成閉包的條件
1 函數(shù)嵌套
2 將內(nèi)部函數(shù)作為返回值返回
3 內(nèi)部函數(shù)必須使用到外部函數(shù)的變量
3、裝飾器的引入
- 我們可以通過(guò)修改函數(shù)中的代碼來(lái)完成新需求,但是會(huì)產(chǎn)生一些問(wèn)題:
1 如果修改函數(shù)過(guò)多,修改過(guò)程比較麻煩,會(huì)造成很大的工作量
2 不方便后期的代碼維護(hù)
3 會(huì)違反開(kāi)閉原則(Open Closed Principle,簡(jiǎn)稱(chēng)OCP);程序的設(shè)計(jì),對(duì)于擴(kuò)展是開(kāi)放的,對(duì)于修改是關(guān)閉的
4、裝飾器的使用
- 通過(guò)裝飾器,可以在不修改函數(shù)的基礎(chǔ)上對(duì)函數(shù)進(jìn)行擴(kuò)展
- 在開(kāi)發(fā)中,我們都是通過(guò)裝飾器來(lái)對(duì)函數(shù)進(jìn)行擴(kuò)展的