js柯里化

        在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。这个技术由 Christopher Strachey 以逻辑学家 Haskell Curry 命名的,尽管它是 Moses Schnfinkel 和 Gottlob Frege 发明的。

        柯里化是指将使用多个参数的函数转换成一系列使用一个参数的函数的技术,或则你可以理解为js柯里化是逐步传参,逐步缩小函数的适用范围,逐步求解的过程。

我们写一个函数,将函数的几个参数相加,返回结果!那我们写的函数如下:

var concatWords = function (a, b, c) { 

        return a+b+c;

};

函数柯里化呢?是分部求解,先传一个a参数,再传一个b参数,再传一个c参数,最后将这三个参数相加!

var concatWordsCurrying = function(a) {

     return function (b) {

         return function (c) { return a+b+c; };

    };

};

结果

console.log(concatWords("foo ","bar ","baza")); // foo bar baza

console.log(concatWordsCurrying("foo ")); // [Function]

console.log(concatWordsCurrying("foo ")("bar ")("baza")); // foo bar baza 函数链式调用

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、你不知道的JavaScript 1、作用域 作用域 LHS RHS RHS查询与简单地查找某个变量的值别无二...
    顶儿响叮当阅读 2,726评论 0 0
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 9,672评论 0 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,308评论 19 139
  • 1、使用typeof bar ===“object”来确定bar是否是一个对象时有什么潜在的缺陷?这个陷阱如何避免...
    深海鲫鱼堡阅读 3,841评论 1 1
  • 6月18日 星期一 晴 今天是端午节,很多朋友都放假了。但是我们没有,不是我们不想放,是我们自己也不愿意给自己...
    能量女王刘大红阅读 3,273评论 0 0