currying
❓질문
커링(currying)이란 무엇인지 설명하고, 활용 예시를 들어줄 수 있나요?
💡 조사하기전 내가 알고 있던 내용
커링이란 파라미터를 받는 함수가 있다고 했을때
function A(a,b){
return a + b
}
이런식으로 사용하는 함수가아니라
function A(a){
return function B(b){
return a + b
}
}
이런식으로 함수를 잘게 나누어 여러개의 파라미터의 함수를 단일 파라미터 함수로 나누는 기법입니다.
이 방식을 활용할려면 클로저와 일급함수를 어느정도 이해하고 있으면 편합니다.
커링의 장점으로 코드의 재활용이 쉬워진다는 점이 있는데.
위 코드를 다시 사용하여 가정을하나 해보자면 a에는 5를 자주넣는 경우가 있다고 치면
const A5 = A(5);
console.log(A5(10)) // 15
console.log(A5(15)) // 20
이런식으로 클로저( 선언됐을때의 환경을 기억하는 특성 )을 활용하여 사용이 가능합니다.
🏫 정리한 내용
요약하자면 재사용성이나 유연성은 증가하는 반면 함수를 작성하는편이 길어지고 여러 함수가 호출되니 메모리상에서 불리할 수 있습니다. 그리고 단순하게 작성하기보단 화살표 함수를 활용하여 함수를 작성하는 경우도 있고 함수를 나눠서 작성하는 경우도있으니 커링을 해본 경험이 있고 없고 러닝커브의 차이가 생긴다는 것 입니다.