首页 > 解决方案 > 是否可以使用“调用”或“应用”一次将参数数组传递给多个函数?

问题描述

例如,假设我有两个函数,aandb和 bothab接受两个string参数,然后将这些字符串记录到控制台:

function a(w, x) {
  console.log(w, x);
}

function b(y, z) {
  console.log(y, z);
}

是否可以一次调用a b使用callapply将一组参数传递给两个函数?

例如,这里有一些伪代码:

(a, b).apply(window, ["Wello", "Horld"]);

是否可以在不使用循环或执行以下操作的情况下实现此目的:

var args = ["Wello", "Horld"];
a.apply(window, args);
b.apply(window, args);

另外,是否可以一次调用两个以上的函数?

注意:这些功能可以按任何顺序运行。

谢谢。

标签: javascriptfunctioncallapply

解决方案


是否可以使用 call 或 apply 调用 a 和 b 以同时将一组参数传递给两个函数?

...

是否有可能在不使用循环或做某事的情况下实现这一点......

不,你必须按照你所描述的去做,要么将参数放在一个数组中并进行每次调用,要么循环一个函数数组,等等。

例如:

for (const f of [a, b]) {
    f.apply(window, ["Wello", "Horld"]);
    // Or if you have the arguments as discrete things like that, I'd use call:
    //f.call(window, "Wello", "Horld");
}

推荐阅读