问题描述: 像这样fn(1,2)(3)()存在空括号的该如何对传参进行相应的运算;
解决思路: .toString隐式转换;
知识点: 数据类型的转换规则;
代码示例:
简洁不够严谨的柯里化代码
function add(a) {
return function (b) {
return a + b
}
}
add(1)(2)==3
那如果像这样的fn(1)(2)()运行会怎么样呢?
add(1)(2)();
OK,会报错,那正确的代码如下:
function addCurry() {
let arr = [...arguments]
var fn = function() {
arr.push(...arguments);
return fn;
};
fn.toString = function () {
return arr.reduce((a, b)=> a + b);
}
return fn;
}