来自百度百科:柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。
可能上面的话比较抽象,但是用代码实现去理解是很明了的↓↓↓
<!DOCTYPE html> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> </head> <body> <script type="text/javascript"> function currey(fn){ var arr=[]; return function(){ if(arguments.length>0){ arr=arr.concat([].slice.call(arguments)); return arguments.callee; }else { return fn(arr) } }; } function getSum(arr){ var sum= arr.reduce((value,item)=>{ return value+item }) return sum } function getProduct(arr){ var sum=arr.reduce((value,item)=>{ return value * item }) return sum } var sum=currey(getProduct); sum(1,2); // sum(2,3,4); sum(1,2)(3) var s=sum(); console.log(s); </script> </body> </html>