柯里化函数
来自百度百科:柯里化(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>

浙公网安备 33010602011771号