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));
结果图
相关文章推荐