Currying은 JavaScript에서 사용되는 함수형 프로그래밍 기술로, 여러 인수를 취하는 함수를 각각 단일 인수를 취하는 일련의 함수로 변환합니다. 이를 통해 인수를 부분적으로 적용할 수 있어 함수 작업에 더욱 유연한 방법이 제공됩니다.
커링은 여러 인수를 취하는 함수를 각각 단일 인수를 취하는 일련의 함수로 변환하는 프로세스입니다. 첫 번째 함수는 첫 번째 인수를 취하고, 두 번째 인수를 취하는 새 함수를 반환하는 식으로 모든 인수가 제공될 때까지 계속됩니다.
커링의 기본 예는 다음과 같습니다.
function add(a) { return function(b) { return a + b; }; } const addFive = add(5); // The first function is called with 5 console.log(addFive(3)); // Output: 8 (5 + 3)
위의 예에서:
커링은 여러 인수를 사용하는 함수가 있고 이를 더 작고 재사용 가능한 조각으로 나누고 싶을 때 가장 유용합니다. 다음은 여러 인수를 사용한 커링의 예입니다.
function multiply(a) { return function(b) { return function(c) { return a * b * c; }; }; } const multiplyBy2 = multiply(2); // First argument is fixed as 2 const multiplyBy2And3 = multiplyBy2(3); // Second argument is fixed as 3 console.log(multiplyBy2And3(4)); // Output: 24 (2 * 3 * 4)
이 경우:
여러 인수를 사용하고 해당 인수를 누적하는 함수를 반환하는 함수를 만들어 수동으로 커링을 구현할 수 있습니다.
function curry(fn) { return function curried(...args) { if (args.length >= fn.length) { return fn(...args); } else { return function(...newArgs) { return curried(...args, ...newArgs); }; } }; } // Example function function sum(a, b, c) { return a + b + c; } const curriedSum = curry(sum); console.log(curriedSum(1)(2)(3)); // Output: 6
위의 예에서:
Currying을 사용하면 재사용 가능하고 구성 가능한 함수를 더 많이 만들 수 있습니다. 일부 시나리오에서는 코드를 단순화하고 공통 인수를 공유하는 함수 작업을 더 쉽게 만들 수 있습니다.
부분 함수 적용: Currying을 사용하면 함수의 부분 적용이 가능합니다. 즉, 일부 인수를 수정하고 다른 인수는 나중에 제공하도록 남겨두어 특수 함수를 만들 수 있습니다.
함수 구성: 카레 함수를 결합하여 코드를 반복하지 않고도 더 복잡한 연산을 구축할 수 있습니다.
가독성 향상: 커링을 사용하면 함수에 필요한 인수가 무엇인지 명확해지고 코드가 더 깔끔하고 간결해집니다.
function add(a) { return function(b) { return a + b; }; } const addFive = add(5); // The first function is called with 5 console.log(addFive(3)); // Output: 8 (5 + 3)
여기서 MultiplyBy10은 첫 번째 인수가 10으로 고정된 특수 함수입니다. 이는 여러 곳에서 재사용할 수 있습니다.
공통 매개변수를 사용하여 일련의 API 요청을 한다고 가정해 보겠습니다. 커링을 사용하면 이 프로세스를 단순화할 수 있습니다.
function multiply(a) { return function(b) { return function(c) { return a * b * c; }; }; } const multiplyBy2 = multiply(2); // First argument is fixed as 2 const multiplyBy2And3 = multiplyBy2(3); // Second argument is fixed as 3 console.log(multiplyBy2And3(4)); // Output: 24 (2 * 3 * 4)
커링이 함수를 일련의 단항 함수로 변환하는 반면, 부분 적용은 함수의 일부 인수를 수정하고 나머지 인수를 허용하는 새 함수를 반환하는 프로세스입니다. 커링은 부분 적용을 달성하는 한 가지 방법입니다.
function curry(fn) { return function curried(...args) { if (args.length >= fn.length) { return fn(...args); } else { return function(...newArgs) { return curried(...args, ...newArgs); }; } }; } // Example function function sum(a, b, c) { return a + b + c; } const curriedSum = curry(sum); console.log(curriedSum(1)(2)(3)); // Output: 6
여기서는 Bind()를 사용하여 Greeting 함수에 "Hello"를 부분적으로 적용했습니다.
안녕하세요. 저는 Abhay Singh Kathayat입니다!
저는 프론트엔드와 백엔드 기술 모두에 대한 전문 지식을 갖춘 풀스택 개발자입니다. 저는 효율적이고 확장 가능하며 사용자 친화적인 애플리케이션을 구축하기 위해 다양한 프로그래밍 언어와 프레임워크를 사용하여 작업합니다.
제 비즈니스 이메일(kaashshorts28@gmail.com)로 언제든지 연락주세요.
위 내용은 JavaScript의 커링 마스터하기: 코드 재사용성과 유연성 향상의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!