JS--柯里化與反柯里化

柯里化

什麼是柯里化?

簡單來講,就是把多參數傳入的函數拆成單參數(或部分)函數,內部再返回調用下一個單參數(或部分)函數,依次處理剩餘的參數
(實則就是利用了閉包的特性)

目的:縮小適用範圍,建立一個針對性更強的函數

用途:簡化代碼結構,提升系統的可維護性,強制了功能的單一性,天然就作到功能內聚,下降耦合

特色:
1. 下降代碼的重複,提升代碼的適應性
2. 提升了代碼的合理性,更重的它突出一種思想---下降適用範圍,提升適用性。
3. 對於一個已有函數,對其約定好其中的某些參數輸入,而後生成一個更有好的、更符合業務邏輯的函數。
4. 提升針對性
5. 延遲執行(只有在最後一次才執行)
6. 固定易變因素

應用:ajax場景(ajax('method')()())

在bind方法中也應用到了柯里化:

柯里化函數形式的實現

我以爲柯里化函數的類型也能夠分爲多種形式

1. 只執行一次(傳入對應要執行的函數)

2. 根據要執行函數的形參個數判斷執行的次數(執行次數小於等於執行函數的形參個數)

3. 實現無限執行的累加操做(利用reduce和隱式轉換的特性)

反柯里化

與柯里化相反的是反柯里化,其目的是爲了擴大適用範圍,建立一個應用範圍更廣的函數。使原本只有特定對象才適用的方法,擴展到更多的對象
實現能夠讓一個對象去借用一個本來不屬於他的方法

實現形式:

場景:
判斷變量類型

相關文章
相關標籤/搜索