完成 compose 函数。它接受任意多个单参函数(只接受一个参数的函数)作为参数,并且返回一个函数。它的作为用:使得类似 f(g(h(a)))这样的函数调用可以简写为 compose(f, g, h

Posted 秦笑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了完成 compose 函数。它接受任意多个单参函数(只接受一个参数的函数)作为参数,并且返回一个函数。它的作为用:使得类似 f(g(h(a)))这样的函数调用可以简写为 compose(f, g, h相关的知识,希望对你有一定的参考价值。

function addOne(a) {
    return a + 1;
};

function multiTwo (a) {
    return a*2;
}
function divThree (a) {
    return a/3;
}
function toString (a) {
    return a + ‘‘;
}
function split(a) {
    return a.split(‘‘);
}

function compose(divThree, multiTwo, addOne, toString, split) {
    // var func_list = [divThree, multiTwo, addOne, toString, split];
    var func_list = new Array();
    console.log(‘arguments‘, arguments);
    for (var arg_index in arguments) {
        var func = arguments[arg_index];
        if (typeof func !== ‘function‘) {
            throw "参数:‘" + func + "‘不是函数"; // throw抛出异常,在throw语句后立即终止, 它后面的语句执行不到,
        }
        func_list.push(func);
    }
    return function(value) {
        func_list.map(function(func_item) {
            value = func_item(value);
        });
        return value;
    }
}
 
console.log(compose(divThree, multiTwo, addOne, toString, split)(666));  //  ["4", "4", "5"]

 

以上是关于完成 compose 函数。它接受任意多个单参函数(只接受一个参数的函数)作为参数,并且返回一个函数。它的作为用:使得类似 f(g(h(a)))这样的函数调用可以简写为 compose(f, g, h的主要内容,如果未能解决你的问题,请参考以下文章

函数使用智能感知接受多个枚举

初识 Jetpack Compose :布局

Python 构造一个可接受任意数量参数的函数

C++中explicit关键字

你能写一个可以接受任意数量参数的 c# 装饰器函数吗?

js函数