繁体   English   中英

curry和休息和传播运营商

[英]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的引用)时,它将接收所有args1args2 ,因此显示1 2 3 4 5 6

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM