核心点:js函数的柯里化
链接: 详解js函数的柯里化.
function fn(){
var arg = [...arguments]
var fn1 = function(){
arg = [...arg,...arguments];
return fn1;
};
fn1.toString = function(){
return arg.reduce((a,b)=> a+b);
}
return fn1;
}
var a = fn(1,2,3,4,5)
var b = fn(1)(2)(3)(4)(5)
console.log(a,b) //15,15
该函数只能在web浏览器中运行,如果直接node执行该段函数js,则会输出
{ [Function: fn1] toString: [Function] } { [Function: fn1] toString: [Function] }
因为toString这个事件修改是浏览器中对象才存在的,在node环境中不存在