用函数计算代码战问题

我试图弄清楚这些函数是如何在彼此内部调用的。有人能告诉我他们是如何运行的吗?是否先调用七(),然后调用五()?


function expression(number, operation){

    if(!operation)

        return number;

    return operation(number);

}


function five(operation) { return expression(5, operation); }

function seven(operation) { return expression(7, operation); }


function times(x) {

    return function(y) {

        return y * x;

    }

}


seven(times(five())); // must return 35


月关宝盒
浏览 110回答 2
2回答

慕无忌1623718

我通过从内部调用函数到外部函数来工作。如图所示,函数及其带有参数的调用及其后续调用。five()    expression(5)        5times(5)     function with closure over x = 5seven(function)    expression(7, function)        function(7)35最后,您会发现相同的结果,但具有相反顺序的函数数组。使用累加器调用函数,累加器返回函数调用的结果。这种方法是可能以后(或永远不会)使用实际实验 管道 operator|>的实际实现,它具有以下语法:expression |> function或者使用您的函数:未定义 |> 五次 |> 次 |> 七次function expression(number, operation) {    console.log('expression');    if (!operation) return number;    return operation(number);}function five(operation) {    console.log('five');    return expression(5, operation);}function seven(operation) {    console.log('seven');    return expression(7, operation);}function times(x) {    console.log('times');    return function(y) {        return y * x;    }}console.log(seven(times(five()))); // 35console.log([five, times, seven].reduce((value, fn) => fn(value), undefined))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript