函数柯理化:
预先处理的思想「形成一个不被释放的闭包,把一些信息存储起来,以后基于作用域链,访问到事先存储的信息,然后进行相关的处理,所有符合这种模式(或者闭包应用的)都被称为柯理化函数」
先来看一道练习题:实现下面的效,函数中的代码如何写
function fn() {
//···
}
var sum = fn(10);
console.log(sum(20)); //10+20
console.log(sum(20, 30)); //10+20+30
x:预先存储的值
function curring(x) {
// x->10
return function (...args) {
// args->[20]/[20,30]
args.unshift(x);
/*
// 数组求和1 --命令式编程
for (var i = 0; i < args.length; i++) {
total += args[i];
}
return total;
// 数组求和2 --函数式编程
args.forEach(function (item) {
total += item;
});
// 数组求和3
var total = eval(args.join('+'));
return total;
*/
// 数组求和4
return args.reduce((result, item) &