字节跳动面试题: 如何实现一个无限累加的函数:sum(1,2,3)(4,5).valueOf(); 1.思路,收集参数,在求和之前递归调用sum不断的收集参数 2.返回求和后的结果 考点:闭包,函数科里化
function sum(...args
) {
const f = (...rest
) => {
return sum(...[...args
, ...rest
]);
}
f
.valueOf = function(){
return args
.reduce((x
, y
) => {
return x
+ y
}, 0);
}
return f
;
}