[英]currying and rest and spread operators
几年前,我在一篇引人入胜的文章中找到了这段代码,但是作者没有解释它的工作原理。 我知道fn和args1变量来自何处,但是我很难理解args2在整个过程中将包含什么,并且想知道是否有人可以提供见解?
function curry(fn, ...args1) {
return (...args2) => { fn(...args1, ...args2); }
}
curry
返回一个函数。 调用该返回的函数时,可以传递其自己的参数。 这些由args2
引用。
function curry(fn, ...args1) { console.log("args1 = ", ...args1); return (...args2) => { console.log("args2 = ", ...args2); fn(...args1, ...args2); } } function myFunc(...allArgs) { console.log(...allArgs); } const curried = curry(myFunc, 1,2,3); curried(4,5,6);
如您所见,当调用fn
(对myFunc
的引用)时,它将接收所有args1
和args2
,因此显示1 2 3 4 5 6
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.