js柯里化
来源:互联网 发布:纸白银行情软件 编辑:程序博客网 时间:2024/06/07 19:42
简单版:
function curring(x){
return function(y){
return x+y;
}
}
curring(1)(2) //3
缺点是参数个数是固定的,
高级点的:
function curring(){
var argList=Array.prototype.slice.call(arguments);
return function(){
if(arguments.length==0){
var sum=0;
var len=argList.length;
for(var i=0;i<len;i++){
sum+=argList[i];
}
return sum
}
else{
argList=argList.concat([].slice.call(arguments));
return arguments.callee
}
}
}
更高级的:
function curring(fn){
var argList=Array.prototype.slice.call(arguments,1);
return function(){
if(arguments.length==0){
fn.apply({},argList)//fn(argList)也可以,但传入的函数需要有一个参数接受argList变量
}
else{
argList=argList.concat([].slice.call(arguments));
return arguments.callee
}
}
}
0 0
- js柯里化
- js柯里化
- js柯里化
- js柯里化
- Js 柯里化
- js柯里化
- JS柯里化curry
- js 柯里化函数
- js柯里化(待续)
- js学习笔记:柯里化
- JS复习 -- 函数柯里化
- js
- js
- JS
- JS
- JS
- js
- js
- GEF原理及实现系列(六、命令)
- 海量数据处理面试题与十个方法大总结
- PHP
- android studio native 方法一直显示 红色
- HQl查询例子和讲解(转载的!---)
- js柯里化
- Guava教程-Cache讲解
- _stdcall和_cdecl区别
- GEF原理及实现系列(七、模型同步)
- Fiddler调式使用知多少(一)深入研究
- zynq PS侧DMA驱动
- GEF原理及实现系列(八、选项板)
- Java 与 邮件发送
- 什么是sql绑定变量?怎么实现绑定变量?