소개
이 랩에서는 JavaScript 를 사용하여 배열을 인수로 받는 함수를 가변 인자 함수 (variadic function) 로 변환하는 방법을 살펴봅니다. 모든 입력을 배열을 인수로 받는 함수로 수집하는 클로저 (closure) 를 생성하여 이를 수행합니다. 이 랩을 마치면 JavaScript 에서 함수를 조작하여 다양한 사용 사례에 더 다양하고 적응 가능하게 만드는 방법에 대한 이해도가 높아질 것입니다.
함수를 가변 인자 함수로 변환하기
배열을 인수로 받는 함수를 가변 인자 함수로 변환하려면 다음 단계를 따르세요.
터미널/SSH 를 열고
node를 입력하여 코딩 연습을 시작합니다.모든 입력을 배열을 인수로 받는 함수로 수집하는 클로저를 반환합니다.
const collectInto =
(fn) =>
(...args) =>
fn(args);
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] (after about 2 seconds)
이렇게 하면 함수에서 임의의 수의 인수를 받아 추가 처리를 위해 배열로 수집할 수 있습니다.
요약
축하합니다! 함수를 가변 인자 함수로 변환하는 랩을 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.