函数柯里化简单理解

本文介绍了一种函数式编程技巧——函数柯里化,通过改造函数使其能够接收一系列参数并返回中间状态,实现了参数的延迟求值。同时,通过一个累积乘法的示例,展示了如何利用闭包和函数柯里化来实现连续调用的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

function add(a,b) { return a + b }   
add(1, 2) => 3
// 对于以上函数如果使用柯里化可以这样改造
function add(a) {
    return b => {
        return a + b
    }
}
add(1)(2) => 3
// 你可以这样理解函数柯里化,通过闭包保存了外部的一个变量,然后返回一个接收参数的函数,在该函数中使用了保存的变量,然后再返回值。

封装一个cont方法,能实现如此调用:函数柯里化
cout(a)(b)©(d)(e)… 并且返回的值为参数连剩的结果,即abcde*…。如cout(1)(3)(7)

 init=0;  //设置一个全局变量
 var muti=function(m)
 {
    init=init*m;
    return muti
  }
  muti.toString=function()  //这是关键的一步
  {
     return init;
  }
  function count(m)  //最终我们要调用的函数
  {
     init=m ;// 初始化,否则init是0,那么永远乘 都是 0,也是很关键的一步
     return muti;//最终返回的是 元对象(不是实例化过后的对象哦)
  }
  alert(count(3)(4)(5))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值