您的位置:首页 > Web前端 > JavaScript

js小题

2018-01-12 12:04 106 查看

欢迎使用Markdown编辑器写博客

题目

补充函数实现代码,使下方调用结果均为6。

function sum(a,b,c){
/* TO DO */
}
function currying(fn){
/* TO DO */
}
var curry  = currying(sum);
console.log(currying(sum,1,2,3));
console.log(curry(1)(2)(3));
console.log(curry(1,2)(3));
console.log(curry()(1)(2)(3));
console.log(curry(1,2,3));


参考代码

function sum(a,b,c){
return a+b+c;
}
function currying(fn){
var slice = Array.prototype.slice;
var len = fn.length;
var arg = slice.call(arguments,1);
if(typeof fn !== "function")return ;
function cry(arg){
if(arg.length==len){
return fn.apply(this,arg);
}else{
return function (){
var args = arg.concat(slice.call(arguments));
if(args.length<len)return cry(args);
return fn.apply(this,args);
}
}
}
return cry(arg);
}
var curry  = currying(sum);
console.log(currying(sum,1,2,3));
console.log(curry(1)(2)(3));
console.log(curry(1,2)(3));
console.log(curry()(1)(2)(3));
console.log(curry(1,2,3));


结果图

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: