JavaScript科里化:实际应用有哪些?
JavaScript科里化:实际应用有哪些?
我认为我还没有完全理解柯里化。我明白它的作用和如何使用它,只是无法想象出我会在哪种情况下使用它。
在JavaScript中,你在哪里使用柯里化(或者主要的库是如何使用它)?DOM操作或一般应用程序开发示例都可以。
一个回答提到动画。像slideUp,fadeIn这样的函数接受一个元素作为参数,并且通常是一个带有默认“动画函数”的柯里化函数。为什么这比直接使用一些默认值应用高级函数更好?
使用它会有什么缺点吗?
如请求所示,以下是关于JavaScript柯里化的一些好资源:
- http://www.dustindiaz.com/javascript-curry/
- Crockford, Douglas (2008) JavaScript: The Good Parts
- http://www.svendtofte.com/code/curried_javascript/(进入ML的一个弯路,所以跳过从“A crash course in ML”开始的整个部分,从“How to write curried JavaScript”重新开始)
- http://web.archive.org/web/20111217011630/http://blog.morrisjohns.com:80/javascript_closures_for_dummies
- How do JavaScript closures work?
- https://johnresig.com/blog/partial-functions-in-javascript(像往常一样,Resig先生就是拿到点子上)
- http://benalman.com/news/2010/09/partial-application-in-javascript/
如果根据回答,柯里化和部分应用通常是一种方便的技术。
如果你经常通过相同的配置调用高级函数来“完善”它,你可以对高级函数进行柯里化(或使用Resig的部分应用)来创建简单、简洁的辅助方法。