为了账号安全,请及时绑定邮箱和手机立即绑定

JS 函数科里化。不明白。具体问题在这?

JS 函数科里化。不明白。具体问题在这?

大话西游666 2019-02-06 10:07:51
// JavaScript Document//在书上看到函数科里化,感觉看的一头雾水,求帮忙//复制到DW上会比较好看function curry (fn,scope){var scope = scope||window;//变量scope是什么作用,作用域吗?var args =[];//设定数组 args(实参)for(var i =2,len=arguments.length; i<len; ++i){args.push(arguments[i])};//是否是将接受的实参arguments历遍,压入数组args中?那么为什么要从i=2开始?return function(){var args2 = [];//设定数组args2for (var i = 0 ;i<arguments.length;i++){args2.push(argument[i]);}//实参argument历遍,压入数组args中,为什么这里又是从i=0开始和上面不同?var argstotal = args.concat(args2);//将所有实参压入到一个argstotal数组里return fn.apply(scope,argstotal);//看不懂。。最后返回得到的是什么。。函数功能是什么?};}//如果能帮忙放在一个具体环境下解说就更好了,,谢谢~~
查看完整描述

2 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

你主要没有调用过,调用一次就明白了,假设一个方法需要多个参数,但是参数不全,那就返回一个方法,在这个方法里面在传递剩余参数。假设fn是这样的function(a,b){
alert(a+b);

}
一开始这么调用 var _t=curry(fn,this,"c"),这里返回的就是一个方法,
之后这么调用 _t('d'),这样就相当于当用fn("c","d"),

查看完整回答
反对 回复 2019-03-15
  • 2 回答
  • 0 关注
  • 724 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信