gpt4 book ai didi

javascript - 如何理解具有多个参数的函数的组合?

转载 作者:行者123 更新时间:2023-11-29 16:10:54 25 4
gpt4 key购买 nike

如:

var foo = function (a, b) { return a + b; };
var bar = function (a, b) { return a * b; };

var fn = _.compose([foo, bar]);

如何理解fn

最佳答案

这是行不通的。

首先,_.compose() 不接受数组。它将函数列表作为单独的参数,如下所示:

var fn = _.compose(foo, bar);

然后,即使这样做了,使用下划线的 _.compose(),每个后续函数都会传递前一个函数的返回结果。由于您的两个函数都需要两个参数并返回一个参数,因此这将不起作用。

如果您修改代码以将参数正确传递给 _.compose(),那么您将拥有:

var foo = function (a, b) { return a + b; };
var bar = function (a, b) { return a * b; };

var fn = _.compose(foo, bar);

然后如果您像这样使用 fn:

fn(2, 5);

它将尝试执行:

foo(bar(2, 5));

将其分开,bar(2, 5) 将返回 10,因此您将得到调用 foo(10) 的结果>,但这会生成 NaN,因为 foo() 的第二个参数是 undefined

_.compose 专为列表中最后一个函数之外的函数而设计,这些函数对单个参数进行操作,该参数是列表中先前函数的返回值。

显示它返回 NaN 的实际实现:http://jsfiddle.net/jfriend00/xhbcdh9k/

关于javascript - 如何理解具有多个参数的函数的组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28313793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com