Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.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中级联函数的干净方法是什么?_Javascript_Function - Fatal编程技术网

什么';Javascript中级联函数的干净方法是什么?

什么';Javascript中级联函数的干净方法是什么?,javascript,function,Javascript,Function,首先,这与链接无关。我知道链接是围绕函数方法的,而这不是,我还没有找到一个术语来描述它 基本上,我所寻找的是一种将一个函数的输出传递到另一个函数并将其链接的干净方法。像这样的东西 const updatedAssets = addCategory(addTagLine(addTags(addImages(addPoints(addID(addTitle(assets))))))); 基本上,资产是一个对象,每个函数都会向其中添加新的键和值。如果您只是想避免嵌套并提高可读性,您可以创建一个函数数

首先,这与链接无关。我知道链接是围绕函数方法的,而这不是,我还没有找到一个术语来描述它

基本上,我所寻找的是一种将一个函数的输出传递到另一个函数并将其链接的干净方法。像这样的东西

const updatedAssets = addCategory(addTagLine(addTags(addImages(addPoints(addID(addTitle(assets)))))));

基本上,
资产
是一个对象,每个函数都会向其中添加新的键和值。

如果您只是想避免嵌套并提高可读性,您可以创建一个函数数组,并使用
reduce()
/
reduceRight()
组合它们。例如:

one=n=>one+n
设two=n=>“two”+n
设三=n=>“三”+n
设函数=[1,2,3]
让res=函数。reduce((res,f)=>f(res),“go”)
console.log(res)
//或相反方向:
设resRev=functions.reduceRight((res,f)=>f(res),“go”)

console.log(resRev)
也许您正在寻找?不确定您想问什么。您的代码可以完全正常工作,并且在JavaScript中很容易实现。你是说如何在TypeScript中实现它?听起来你已经找到了解决方案。为什么你对你发布的代码不满意?@t.niese为什么你认为它不清楚?当然,在一条线上发生了很多事情,但是发生的事情是很清楚的。@Bergi一开始一条线看起来还可以。但是,如果您需要更改函数的顺序,如果您需要删除函数或添加更多的函数,那么这种构造会变得非常烦人。虽然重新排序可能在代码中起作用,但代码审计仍然很难看到发生了什么变化,因为整个结构总是会完全改变。