日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

柯里化(Curing)

發(fā)布時間:2025/4/9 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 柯里化(Curing) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

柯里化:把接受多個參數(shù)的函數(shù)變換成接受單個參數(shù)的函數(shù),并且返回準(zhǔn)備接受余下參數(shù),還能返回結(jié)果的一種技術(shù)。

1 function currying(fn){ 2 var args = Array.prototype.slice.call(arguments, 1); 3 4 return function(){ 5 var innerArgs = Array.prototype.slice.call(arguments); 6 var finnalArgs = args.concat(innerArgs); 7 8 return fn.apply(null, finnalArgs); 9 } 10 11 } 12 13 function add(num1, num2){ 14 return num1 + num2; 15 } 16 17 var curriedAdd = currying(add, 2); 18 console.log(curriedAdd(3)); //5

使用柯里化,我們實現(xiàn)一個數(shù)字累加的例子:

1 function currying(fn) { 2 var _store = []; 3 4 return function () { 5 if (!arguments.length) { 6 return fn.apply(null, _store); 7 } else { 8 _store = _store.concat(Array.prototype.slice.call(arguments)); 9 } 10 } 11 12 } 13 14 function sum() { 15 var total = 0; 16 for (var i = 0, len = arguments.length; i < len; i++) { 17 total += arguments[i]; 18 } 19 return total; 20 } 21 22 var addNum = currying(sum); 23 24 addNum(1); 25 addNum(2); 26 addNum(3, 4); 27 28 console.log(addNum()); //10

在多參數(shù)的函數(shù)中,如果我們想固定其中的一些參數(shù),我們就可以使用函數(shù)的柯里化特性。預(yù)先將函數(shù)的某些參數(shù)傳入,得到一個簡單的函數(shù),預(yù)先傳入的參數(shù)則被保存在閉包中。

?

轉(zhuǎn)載于:https://www.cnblogs.com/zhouwenhong/p/3949058.html

總結(jié)

以上是生活随笔為你收集整理的柯里化(Curing)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。