将函数转换为可变参数函数

Beginner

This tutorial is from open-source community. Access the source code

简介

在本实验中,我们将探索如何使用 JavaScript 将一个接受数组的函数转换为可变参数函数。我们将通过创建一个闭包来实现这一点,该闭包将所有输入收集到一个接受数组的函数中。在实验结束时,你将更好地理解如何在 JavaScript 中操作函数,使其更通用并适应不同的用例。

将函数转换为可变参数函数

要将一个接受数组的函数转换为可变参数函数,你可以按以下步骤操作:

  1. 打开终端/SSH 并输入 node 开始练习编码。

  2. 返回一个闭包,该闭包将所有输入收集到一个接受数组的函数中。

const collectInto =
  (fn) =>
  (...args) =>
    fn(args);
  1. 使用 collectInto 函数将一个函数转换为可变参数函数。
const Pall = collectInto(Promise.all.bind(Promise));
let p1 = Promise.resolve(1);
let p2 = Promise.resolve(2);
let p3 = new Promise((resolve) => setTimeout(resolve, 2000, 3));
Pall(p1, p2, p3).then(console.log); // [1, 2, 3] (大约 2 秒后)

这样你就可以在函数中接受任意数量的参数,并将它们收集到一个数组中以便进一步处理。

总结

恭喜你!你已经完成了“将函数转换为可变参数函数”实验。你可以在 LabEx 中练习更多实验来提升你的技能。