柯里化的作用
- 惰性求值 (Lazy Evaluation)
从上文的代码来看,柯里化收的函数是分步执行的,第一次调用返回的是一个函数,第二次调用的时候才会进行计算。起到延时计算的作用,通过延时计算求值,称之为惰性求值。
- 动态生成函数
假如实际编程中需要求不通数的若干次幂(整数),可能需要求2次幂,也能需要4次幂或者其他次幂,如果不用柯里化,那么需要求几次幂,就得写几个对应方法。通过柯里化,可以写在一个方法中:
function power(n){
return function (number){
let result = 1;
for(let i = 0; i < n; ++i){
result *= number;
}
return result;
}
}
需要求平方的时候,可以直接生成一个求平方的方法。
let p2 = power(2);
p2(4) // 输出16
p2(5) // 输出25
同样,需要求立方也可以直接生成一个求立方的方法,不用每个幂次都写一个方法。
let p3 = power(3); //求立方
p3(2) // 输出8
p3(4) // 输出64
作者:ettingshausen
链接:https://www.jianshu.com/p/69fa332823bf
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。