在前端进阶计划第42周作业 看到。
js实现无限柯里化加法,也就是实现:
add(1)(2)(3)(); // => 6 add(1)(2)(3)(4)(); // => 10 add(1)(2)(3)(4)(5)(); // => 15
参考了柯里化的通用实现,于是写成了这样:
function adder( me ) { var slice = Array.prototype.slice, __args = slice.call(arguments); return function () { var __inargs = slice.call(arguments); if( arguments.length == 0 ){ var me = 0 ; for(var i in __args){ me += __args[i]; } return me ; } else return adder.apply(this, __args.concat(__inargs)); }; } alert( adder(1)(2)() );
时间: 2024-10-11 05:23:28