// 缓存8折优惠后的价格
var discount80 = discount(.8);
// 缓存9折优惠后的价格
var discount90 = discount(.9);
// 优惠价格Currying
function discount(percent){
return function(price){
return price * percent;
}
}
console.log(discount80(69.99)); // 55.992
console.log(discount90(69.99)); // 62.991
函数式编程的意义,它可以缓存调用函数先传一部分参数的结果,然后再调用时传入另一部分参数,第一次调用缓存可以理解为对某个最终结果的预加载。第二次调用缓存的函数引用得到最终结果。