js函數柯里化的方法和作用實例分析
本文實例講述了js函數柯里化的方法和作用。分享給大家供大家參考,具體如下:
函數柯里化的方法:
1,利用數組的reduce方法可實現柯里化,具體參見我的另外一篇文章
2,代碼如下
const curry = (fn, ...args) =>{
console.log('args',args)
// console.log(fn.length,args.length)
return args.length < fn.length
// 參數長度不足時,重新柯里化該函數,等待接受新參數
? (...arguments) => {
console.log('arguments',arguments)
return curry(fn, ...args, ...arguments)
}
// 參數長度滿足時,執(zhí)行函數
: 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

函數柯里化的主要作用:
- 參數復用。
- 提前返回 – 返回 接受余下的參數 且返回結果 的 新函數。
- 延遲執(zhí)行 – 返回新函數,等待執(zhí)行。
感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼運行效果。
更多關于JavaScript相關內容可查看本站專題:《JavaScript常用函數技巧匯總》、《javascript面向對象入門教程》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》及《JavaScript數學運算用法總結》
希望本文所述對大家JavaScript程序設計有所幫助。
相關文章
array.prototype.silce.call 理解分析
在很多框架中與遇到這個方法,但一時沒去研究這個方法,只要前段時間被問到,尷尬無奈收場。所以學習就要追根究底的精神,廢話少說,說正題。2010-04-04
javascript實現在某個元素上阻止鼠標右鍵事件的方法和實例
這篇文章主要介紹了javascript實現在某個元素上阻止鼠標右鍵事件的方法和實例,需要的朋友可以參考下2014-08-08
Javascript類型系統(tǒng)之String字符串類型詳解
這篇文章主要介紹了Javascript類型系統(tǒng)之String字符串類型詳解的相關資料,需要的朋友可以參考下2016-06-06
JavaScript隊列、優(yōu)先隊列與循環(huán)隊列
這篇文章主要為大家詳細介紹了JavaScript隊列、優(yōu)先隊列與循環(huán)隊列的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-11-11
Threejs與Tween.js結合創(chuàng)建動畫的詳細圖文教程
three.js和tween.js可以一起使用,實現復雜的動畫效果,包括飛線動畫,這篇文章主要給大家介紹了關于Threejs與Tween.js結合創(chuàng)建動畫的相關資料,需要的朋友可以參考下2024-01-01

