js函式柯里化

2021-10-12 10:06:14 字數 1628 閱讀 2261

所謂的柯里化就是具有較多引數的函式轉換成具有較少引數的函式的過程

例如 :獲取隨意四個數的和

//這是我們平常的寫法

function

getsum

(a, b, c, d)

console.

log(

getsum(1

,2,3

,4))

;//10

//經過柯里化函式後就可這樣寫

function

getsum

(a, b, c, d)

//柯里化功能函式

function

curry

(fn)

//此時會返回乙個新的函式,newgs就是經過柯里化處理過的新的函式

let newgs =

curry

(getsum)

//如果你的函式引數傳遞完成,會直接執行,沒有傳遞完成,會繼續返回乙個函式期待下次呼叫函式是把引數傳遞完成,知道傳完為止

console.

log(

newgs(1

,2)(

3,4)

);

console.

log(

newgs(1

,2)(

3)(4

)); console.

log(

newgs(1

)(2)

(3)(

4));

獲取隨意四個數的和(經過柯里化處理)

function

getsum

(a, b, c, d)

//柯里化函式

function

curry

(fn, args)

else}}

let newgs =

curry

(getsum)

console.

log(

newgs(1

,2,3

,4))

;//10

console.

log(

newgs(1

,2)(

3,4)

);//10

console.

log(

newgs(1

,2)(

3)(4

));//10

console.

log(

newgs(1

)(2)

(3)(

4));

//10

日常會用到的柯里化函式(ajax)

//ajax也會用到柯里化

function

ajax

(method,url,data)

//原生寫法

//柯里化函式後寫法

js函式柯里化

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

js 函式柯里化

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

js 函式柯里化

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