Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 关于在JS中使用curry的好处_Javascript - Fatal编程技术网

Javascript 关于在JS中使用curry的好处

Javascript 关于在JS中使用curry的好处,javascript,Javascript,我是JS新手,在学习函数式编程时遇到了“咖喱”一词。此外,我得到它允许我们将一个有多个参数的函数转换成一次有一个参数的函数。但是,我真的不明白为什么我们需要使用它,以及我们从中得到了什么好处。此外,如果您查看下面的代码,我们正在多次运行curriedMultiply5(),那么currying的好处是它只帮助我们运行代码一次,并多次重用其输出,这是真的吗?也就是说,currying帮助我们实现效率。问题是为什么我们需要使用咖喱,是因为它帮助我们实现了代码效率吗 const curriedMult

我是JS新手,在学习函数式编程时遇到了“咖喱”一词。此外,我得到它允许我们将一个有多个参数的函数转换成一次有一个参数的函数。但是,我真的不明白为什么我们需要使用它,以及我们从中得到了什么好处。此外,如果您查看下面的代码,我们正在多次运行curriedMultiply5(),那么currying的好处是它只帮助我们运行代码一次,并多次重用其输出,这是真的吗?也就是说,currying帮助我们实现效率。问题是为什么我们需要使用咖喱,是因为它帮助我们实现了代码效率吗

const curriedMultiply= (a) => (b) => a*b;
const curriedMultiply5= curriedMultiply(5);

curriedMultiply5(4);
curriedMultiply5(4);
curriedMultiply5(4);

例如,您可以考虑使用一个参数的函数,如增值税(VAT),然后返回一个函数,该函数的值只有一个参数,用于计算增值税价格

此函数仅通过使用单个参数来设置增值税并获取增值税价格数组,即可用作回调函数

const addVAT=vat=>price=>price+price*vat;
增值税=0.2,
不含增值税的价格=[0.2,1.11,30.99],
pricesWithVAT=pricesWithoutVAT.map(addVAT(增值税));

控制台日志(价格为增值税)请添加您的问题。curry的优点是您可以使用多个函数的特定部分。如果您已经有多个现有函数,并且只需要使用某些函数,这是很实用的。@zer00ne,嘿,谢谢您的友好回复,您的意思是,由于Curry,我们将函数划分为多个参数,并将其划分为多个函数,每个函数都有一个参数。然后我们可以从几个函数中取一个函数并使用它。这是正确的吗?根据我的浏览器js引擎(v8的某个版本),至少在这个例子中,效率没有提高@梅森,那我们为什么要用咖喱?