我想我还没有了解咖喱。我明白它的作用,以及如何去做。我只是想不出我会使用它的情况。
你在 JavaScript 中在哪里使用柯里化(或者主要库在哪里使用它)?欢迎 DOM 操作或一般应用程序开发示例。
其中一个答案提到了动画。像这样的函数slideUp
,fadeIn
将一个元素作为参数,通常是一个柯里化函数,返回带有默认内置“动画函数”的高阶函数。为什么这比仅应用具有某些默认值的高层函数更好?
使用它有什么缺点吗?
这里有一些关于 JavaScript 柯里化的好资源:
- http://www.dustindiaz.com/javascript-curry/
- Crockford, Douglas (2008) JavaScript:好的部分
- http://www.svendtofte.com/code/curried_javascript/ (绕过机器学习,因此跳过“机器学习速成课程”中的整个部分并重新开始“如何编写咖喱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 的部分)高级函数来创建简单、简洁的辅助方法。