function sum(a) {
const add = function(b) {
if (b !== undefined) {
console.log(b);
a = a + b;
return add;
}
return a;
}
return add;
}
console.log(sum(1)(2)(3)(4)()) //10
如果 b 没有在任何地方传递,为什么 sum 返回 10?为什么 console.log(b) 返回 2,3,4?1哪里出错了?
该函数
sum返回另一个函数,其中参数名称为b。sum带参数的第一次调用(1)将返回一个函数add。(2)对,(3)的后续调用(4)将比此方法更窄。哪个参数有名称b并将采用这些相同的值在第一次函数调用之后,
sum我们实际上得到了这个事实上,这还不是全部。但现在,你不需要知道更多。