gpt4 book ai didi

javascript - lodash.js 在 function.apply 上的部分应用

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:24:40 26 4
gpt4 key购买 nike

给定以下函数,_.partial 函数的使用会引发错误:

function foo(x, y) { return 1 + 2; }
p = _.partial(foo.apply, null);
p([1,2]);

我得到:

TypeError: Function.prototype.apply was called on [object Window], which is a object and not a function

我在这里做错了什么?还有其他方法可以实现我正在做的事情吗?

最佳答案

我相信这是你想要的:

function foo(x, y) { return x + y; }
p = Function.apply.bind(foo, null);
p([1,2]); // ===3

我最接近的下划线是通过 _.bind:

function foo(x, y) { return x + y; }
p = _.bind(foo.apply, foo, 0);
p([1,2]); // ===3

您可能还想考虑该函数的另一种灵活用法,对超过 2 个元素的整个数组求和:

 function foo(x, y) { return x + y; }
_.reduce([1,2,3,4,5], foo); // == 15

或使用 vanillaJS:

function foo(x, y) { return x + y; }
[1,2,3,4,5].reduce(foo); // == 15

关于javascript - lodash.js 在 function.apply 上的部分应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22363051/

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