美文网首页
2019-01-19 JS 函数柯里化

2019-01-19 JS 函数柯里化

作者: rub1cky | 来源:发表于2019-01-19 14:29 被阅读0次

是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。

特点1. 返回一个函数
特点2. 将一个带有多个参数的函数转换为一次一个的函数的过程

  1. 闭包的作用
    闭包可以对函数参数进行持久化
function add(a) {
    return function(b){
        return function(c) {
            return a+b+c
        }
    }
}

let a = add(3)
let ab = a(5)
let abc = ab(2)
console.log(abc) // 10
  1. 偏函数

function partial(fn) {
// 获取保存函数第一次传入的参数
    let args = Array.prototype.slice.call(arguments, 1);
    return function() {
        //再次调用函数的时候传入的参数
        let args1 = Array.prototype.slice.call(arguments);
        // 第二次传入的参数和第一次的合并起来
        return fn.apply(this, args.concat(args1));
    };
}

function add(x, y) {
    return x + y 
}

let a = partial(add)
console.log(a('hello', ' world')) // hello world
let b = partial(add, 'hello')
console.log(b(' world')) // hello world
  1. compose 函数
    参数为函数名, 函数执行顺序为从右向左,即最右边的函数(最后一个参数)最先执行,执行完的结果作为参数传递给前一个函数(包裹它的函数),一直到整个函数执行完毕,return一个函数
function compose() {
    let args = arguments; 
    let start = args.length - 1;
    return function() {
        let i = start;
        //  执行当前函数,并获取当前函数的结果
        let result = args[start].apply(this, arguments);
        // 循环开始传入的参数,并把前一次执行的结果传入
        while(i--) {
            result = args[i].call(this, result);
        }
        return result;
    }
}

相关文章

  • [译]JavaScript中的函数柯里化

    原文 Currying in JS 函数柯里化 函数柯里化以Haskell Brooks Curry命名,柯里化是...

  • js柯里化

    标签: js柯里化 js柯里化 柯里化是什么在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成...

  • JS函数式编程之柯里化

    JS函数式编程之柯里化 为什么要了解柯里化 柯里化是函数式编程必须要使用的. 这里我们就先介绍下什么是柯里化, 然...

  • JS_函数柯里化

    JS_函数柯里化 与函数绑定密切相关的主体是函数柯里化(function currying),它用于创建已经设置好...

  • 2019-01-19 JS 函数柯里化

    是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新...

  • JS柯里化

    柯里化简介 js柯里化(currying)又译为卡瑞化或加里化,是把接受多个参数的函数,变为可接受多次调用的函数,...

  • JS函数柯里化

    函数柯里化:提高函数的适用性,同时降低函数的通用性;其实现方式就是固定一些可以预期的参数,然后返回一个特定的函数 ...

  • js函数柯里化

    什么是函数柯里化? 在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函...

  • JS函数柯里化

    什么是柯里化? 维基百科上说道:柯里化,英语:Currying(果然是满满的英译中的既视感),是把接受多个参数的函...

  • JS函数柯里化

    首先看看柯里化到底是什么? 维基百科上说道:柯里化,英语:Currying(果然是满满的英译中的既视感),是把接受...

网友评论

      本文标题:2019-01-19 JS 函数柯里化

      本文链接:https://www.haomeiwen.com/subject/bepadqtx.html