Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.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 - Fatal编程技术网

Javascript咖喱与方法链接

Javascript咖喱与方法链接,javascript,Javascript,据我所知: curry函数返回函数 string.capitalize(1)('character')('at the end') 方法链接-返回对象的方法 string.lowercase.capitalize.uppercase 这种理解正确吗 如果是这样,是否有一种情况比另一种好 因为在我看来,方法链接更好、更具可读性。您还可以使用自动补全功能,显示在点击“点”时可以使用的方法,并显示可以传递的所有参数。与currying更好的等效方法是生成器设计模式 因此,你可以这样做: myObj

据我所知:

curry函数返回函数

string.capitalize(1)('character')('at the end')
方法链接-返回对象的方法

string.lowercase.capitalize.uppercase
这种理解正确吗

如果是这样,是否有一种情况比另一种好


因为在我看来,方法链接更好、更具可读性。您还可以使用自动补全功能,显示在点击“点”时可以使用的方法,并显示可以传递的所有参数。

与currying更好的等效方法是生成器设计模式

因此,你可以这样做:

myObject.setIndexRangeToEffect(1,1).setTextTransformation(大写).execute()


在调用
execute
之前的任何时候,基本上都有一个“curry”操作对象。

JavaScript不支持本机的curry(可以用闭包来模拟它,但是..另外,发布的示例看起来并不像一个合理的curry:-),因此通常只使用链接(与curry不正交)。curry的一个重要“理由”是能够使用部分应用的函数——同样,仅使用闭包是可行的。谢谢!我开始觉得咖喱就像建筑图案,我也觉得我疯了。你搞定了!!