js實用方法 柯里化

2021-10-04 06:46:02 字數 734 閱讀 8171

首先,什麼是柯里化:用於固定某個函式的某些引數,得到另乙個函式,該函式接收剩餘引數。柯里化至少要有乙個引數,就是要固定的那個函式。

先舉個例子來解釋一下什麼是函式柯里化:

function

f(x, y, z)

//curry是需要寫的柯里化函式

let f1 =

curry

(f,2);

//固定了f的第乙個引數,返回乙個可以傳參的函式

let f2 =f1(

3,2)

//會輸出 (2 + 3) *5

假如這個curry函式已經存在,接收需要固定引數的函式,然後返回乙個可以繼續接收引數的函式,最後統一傳遞給 f 函式,來進行內部運算,直到接收引數已經滿足 f 函式的引數需求。

下面來封裝一下這個curry函式:

function

curry

(func)

else

}}

應用curry函式,得到最終結果和fn(1, 2, 4)相同

function

fn(x, y, z)

var fn1 =

curry

(fn,1)

;var fn2 =

fn1(2)

; console.

log(

fn2(4)

);

js反柯里化

反柯里化主要是借用別人的函式,比如類陣列沒有push函式,但是可以借用push函式,push 呼叫的時候,push裡面的this值是,但是arguments.push 是不行的,因為arguments沒有這個方法,那怎麼辦呢,反柯里化就是要修改裡面的this值,所謂的this泛化,讓this程式設計...

js函式柯里化

什麼是函式柯里化?在電腦科學中,柯里化 currying 是把接受多個引數的函式變換成接受乙個單一引數 最初函式的第乙個引數 的函式,並且返回接受餘下的引數且返回結果的新函式的技術。這個技術由 christopher strachey 以邏輯學家 haskell curry 命名的,儘管它是 mos...

js 函式柯里化

函式柯里化的主要目的就是為了減少函式傳參,同時將一些固定引數私有化。下面展示一段非常簡單計算圓面積的 來說明函式柯里化的原理 circle函式,接受半徑r和 function circle r,p 通過函式柯里化來簡化circle函式,只傳入半徑就能計算出面積 不管怎麼樣,是不會變的,因此我們將他寫...