js函數(shù)柯里化的方法和作用實例分析
本文實例講述了js函數(shù)柯里化的方法和作用。分享給大家供大家參考,具體如下:
函數(shù)柯里化的方法:
1,利用數(shù)組的reduce方法可實現(xiàn)柯里化,具體參見我的另外一篇文章
2,代碼如下
const curry = (fn, ...args) =>{ console.log(’args’,args) // console.log(fn.length,args.length) return args.length < fn.length // 參數(shù)長度不足時,重新柯里化該函數(shù),等待接受新參數(shù) ? (...arguments) => { console.log(’arguments’,arguments) return curry(fn, ...args, ...arguments) } // 參數(shù)長度滿足時,執(zhí)行函數(shù) : fn(...args);}function sumFn(a, b, c) { return a + b + c;}var sum = curry(sumFn); const one = sum(2)console.log(’one:’,one.toString())const two = one(3)console.log(’two:’,two.toString())const three = two(5)console.log(’three:’,three.toString()) //console.log(sum(2)(3)(5));//10// console.log(sum(2, 3, 5));//10// console.log(sum(2)(3, 5));//10// console.log(sum(2, 3)(5));//10
函數(shù)柯里化的主要作用:
參數(shù)復用。 提前返回 ? 返回 接受余下的參數(shù) 且返回結果 的 新函數(shù)。 延遲執(zhí)行 ? 返回新函數(shù),等待執(zhí)行。感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼運行效果。
更多關于JavaScript相關內容可查看本站專題:《JavaScript常用函數(shù)技巧匯總》、《javascript面向對象入門教程》、《JavaScript錯誤與調試技巧總結》、《JavaScript數(shù)據(jù)結構與算法技巧總結》及《JavaScript數(shù)學運算用法總結》
希望本文所述對大家JavaScript程序設計有所幫助。
相關文章:
1. IntelliJ IDEA 常用設置(配置)吐血整理(首次安裝必需)2. python 編寫輸出到csv的操作3. JAMon(Java Application Monitor)備忘記4. js的一些潛在規(guī)則使用分析5. PHP swoole的process模塊創(chuàng)建和使用子進程操作示例6. php中加密解密DES類的簡單使用方法示例7. 利用原生JS實現(xiàn)歡樂水果機小游戲8. Python PyQt5-圖形界面的美化操作9. ASP.Net MVC利用NPOI導入導出Excel的示例代碼10. 手把手教你用python發(fā)送短消息(基于阿里云平臺)
