JS函式柯里化

2021-10-04 19:55:37 字數 838 閱讀 6784

柯里化,英語:currying(果然是滿滿的英譯中的既視感),是把接受多個引數的函式變換成接受乙個單一引數(最初函式的第乙個引數)的函式,並且返回接受餘下的引數而且返回結果的新函式的技術。

我們常用的bind就是一種函式柯里化

// 柯里化 currying後

function test(x)

};var aa = test(1);

aa(3)

aa(4)

//當地乙個引數需要重複使用,可以用柯里化

// bind 實現柯里化

function test2(a, b ,c)

test2.bind(null, 1)(2,3); // 3

柯里化的好處

1.引數復用

// 正常正則驗證字串 reg.test(txt)

// 函式封裝後

function check(reg, txt)

check(/\d+/g, 'test') //false

check(/[a-z]+/g, 'test') //true

// currying後

function curryingcheck(reg)

}var hasnumber = curryingcheck(/\d+/g)

var hasletter = curryingcheck(/[a-z]+/g)

hasnumber('test1') // true

hasnumber('testtest') // false

hasletter('21212') // false

js函式柯里化

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

js 函式柯里化

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

js 函式柯里化

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