currying in javascript-js柯里化
2013-11-13 19:30
375 查看
柯里化是指将一个多参数的函数转化成更少参数的函数,专业解释看维基百科。柯里化实现是通过把参数列表中的某些参数绑定到首先被调用的函数里,这样这些参数就附加到下一次的调用里。这个有个表现柯里化样子的例子:
babyAnimals是一个柯里化的方法。它的作用是在函数本身彻底执行完之前,对第一个参数的包装。 ‘koalas’被绑定到babyAnimals上,那么我对多个动物的喜欢就能够很容易表达而不仅仅是大象。
柯里化能够被集成到回调里来创建高层次的”工厂“函数。在事件处理时这种模式非常有用,它能够替代在nodejs里使用的回调模式。(关于这种模式,Brun Jouhi有篇介绍它的很好文章)。这儿是一个关于nodejs处理文件的柯里化应用:
首先,它看起来好像没发生什么,但是这中模式确实很强大。在nodejs里使用柯里化能够把读取的数据传给其他能够处理该数据的方法。我们能够延迟调用回调方法,直到我们需要时。柯里化的nodejs方法也适用一系列并行I/O的多文件处理,很想nodejs里的 async 库。
柯里化不是js的本地模式,它经常方便的写一些工具方法,它们能将传递的方法转化成柯里化版的自己。
现在我们可以通过把一个方法作为第一个参数传递给currier,就能够应用柯里化。
这就是柯里化。我希望你能够学到一些关于这种强大技术的新东西!你有柯里化的例子分享吗?如果有,请把它写成一个代码片段留在评论里。
原文:
https://medium.com/the-javascript-collection/ce6da2d324fe
babyAnimals是一个柯里化的方法。它的作用是在函数本身彻底执行完之前,对第一个参数的包装。 ‘koalas’被绑定到babyAnimals上,那么我对多个动物的喜欢就能够很容易表达而不仅仅是大象。
柯里化能够被集成到回调里来创建高层次的”工厂“函数。在事件处理时这种模式非常有用,它能够替代在nodejs里使用的回调模式。(关于这种模式,Brun Jouhi有篇介绍它的很好文章)。这儿是一个关于nodejs处理文件的柯里化应用:
首先,它看起来好像没发生什么,但是这中模式确实很强大。在nodejs里使用柯里化能够把读取的数据传给其他能够处理该数据的方法。我们能够延迟调用回调方法,直到我们需要时。柯里化的nodejs方法也适用一系列并行I/O的多文件处理,很想nodejs里的 async 库。
柯里化不是js的本地模式,它经常方便的写一些工具方法,它们能将传递的方法转化成柯里化版的自己。
现在我们可以通过把一个方法作为第一个参数传递给currier,就能够应用柯里化。
这就是柯里化。我希望你能够学到一些关于这种强大技术的新东西!你有柯里化的例子分享吗?如果有,请把它写成一个代码片段留在评论里。
原文:
https://medium.com/the-javascript-collection/ce6da2d324fe
相关文章推荐
- JS:Trim() in javascript, how to define a function of checkinput for a WebControl(ascx)
- javascript中的函数currying(柯里化) 的理解
- nowjs for Node - Directly call remote functions in Javascript
- Arcgis for Javascript 出现“init.js->TypeError: f is not a function”
- JS中的柯里化(currying)
- js:for...in 语句(JavaScript For...In Statement)
- Javascript Module pattern template. Shows a class with a constructor and public/private methods/properties. Also shows compatibility with CommonJS(eg Node.JS) and AMD (eg requireJS) as well as in a br
- 从内部和外部的js文件中获取ASPX页面的控件ClientID(get control reference from inline and external javascript)
- javascript - Show mouse cursor in phantom.js - Stack Overflow
- JSINQ——Linq在Javascript的应用
- [CSSinJS] Convert Sass (SCSS) Styled Button to CSSinJS with JavaScript Templates and Variables
- IE/FF/OP兼容的JavaScript放大镜( magnifying glass by JS work in IE/FF/OP)
- Code Organization in Large AngularJS and JavaScript Applications(waititng for translate)
- use noscript html tag when user disable the javascript in browser, guide user how to enable the js in different browser and retu
- 浅析 JavaScript 中的 函数 currying 柯里化
- JavaScript中的柯里化(currying)
- Creating Web Applications in JavaScript with Express.js and ejs
- in.js 一个轻量级的JavaScript颗粒化模块加载和依赖关系管理解决方案
- js原型继承与多态 How to apply virtual function in javascript
- JavaScript(二)-14-(JS中的特有语句-forin)