JavaScript curry:有哪些实际应用?
我不认为我已经摸索咖喱了。我了解它的作用,以及如何做到这一点。我只是想不出我会使用它的情况。
你在JavaScript中在哪里使用咖喱(或者主要库在哪里使用它)?欢迎使用 DOM 操作或一般应用程序开发示例。
其中一个答案提到了动画。像 这样的函数将元素作为参数,通常是返回内置默认“动画函数”的高阶函数的 curried 函数。为什么这比仅仅应用具有某些默认值的上级函数更好?slideUp
fadeIn
使用它有什么缺点吗?
根据要求,这里有一些关于JavaScript咖喱的好资源:
- http://www.dustindiaz.com/javascript-curry/
- Crockford, Douglas (2008) JavaScript: The Good Parts
- http://www.svendtofte.com/code/curried_javascript/(绕道进入ML,因此请跳过“ML速成课程”的整个部分,然后从“如何编写咖喱JavaScript”重新开始)
- http://web.archive.org/web/20111217011630/http://blog.morrisjohns.com:80/javascript_closures_for_dummies
- JavaScript 闭包是如何工作的?
- http://ejohn.org/blog/partial-functions-in-javascript(雷西格先生像往常一样在钱上)
- http://benalman.com/news/2010/09/partial-application-in-javascript/
我会添加更多,因为它们在评论中突然出现。
因此,根据答案,咖喱和部分应用一般都是便利技术。
如果您经常通过使用相同的配置调用高级函数来“优化”该函数,则可以使用(或使用Resig的部分)高级函数来创建简单,简洁的帮助器方法。