gpt4 book ai didi

javascript - 传递参数数组

转载 作者:行者123 更新时间:2023-12-02 16:19:48 28 4
gpt4 key购买 nike

我正在尝试创建一个传递函数并使用一组参数调用它的函数。例如:

function foo(func, args) {
return func(args);
}

但是,我不知道 args 中可能有多少个元素,并且 func 应该能够是采用任意数量的 args 的任意函数。我该如何处理这个问题?

还说我想存储传递给 foo 的函数,并且仅在之前未调用过它们时才调用它们。

我可以做这样的事情吗:

var calledFuncs = [];
function foo(func, args) {
if(calledFuncs.indexOf(func) === -1) {
calledFuncs.push(func);
return func(args);
}
}

谢谢,我对 JavaScript 函数式编程有点陌生。

最佳答案

您正在寻找func.apply:

  • 第一个参数是上下文,也称为 this 值。您不想更改此设置,因此请忽略它。
  • 第二个参数是一个包含参数的数组,当然可以是动态长度的。

所以你可以这样做:

return func.apply(this, args);

您似乎对第二个问题有一个很好的方法(替换了 func(args) )。不过,您可能希望存储被调用函数的返回值,因为 foo 现在对于除第一个调用之外的任何调用都返回 undefined

关于javascript - 传递参数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10953474/

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