剩余参数
老师,我遇到了一段代码,我不太理解为什么这里的剩余参数args是传入sum函数的参数[1,2,3]而不是空数组。对于curry函数来说,它的实参难道不是唯一的函数sum吗,为什么还存在剩余参数呢?
function curry(func) {
return function curried(...args) {
if (args.length >= func.length) {
return func.apply(this, args);
} else {
return function(...args2) {
return curried.apply(this, args.concat(args2));
}
}
};}
function sum(a, b, c) {
return a + b + c;}
let curriedSum = curry(sum);
console.log( curriedSum(1, 2, 3) ); // =>615
收起
正在回答
1回答
同学你好,此处是为了使用apply来改变内部指向和传参,而apply中的这个args:这个是类数组,它将作为参数传给Function(args-->arguments),而...args是用来接收参数的。
祝学习愉快~
相似问题
登录后可查看更多问答,登录/注册

恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星