일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 컴포넌트 합성
- React Child Component
- HD Map
- js call
- 하위 컴포넌트에 prop 전달
- 고정밀 지도
- context api
- js apply
- 자율 주행
- Prop Drilling
- react props
- js call apply bind
- 중첩된 prop
- 고정밀지도
- javascript
- Javascript this undefined
- js bind
- react
- Today
- Total
simkkong
[JavaScript] Currying (커링) 본문
Currying
커링은 function(a, b, c)처럼 단일 호출로 처리하는 함수를, function(a)(b)(c) 와 같이 각각 단일 인수(argument)로 함수를 호출하여 변환하는 것이다.
첫 번째 인자로 새 함수를 반환하고, 두번쨰 인수가 새로운 함수를 또 반환하며.. 반복해서 모든 인자가 완료될 때까지 실행한다.
커링은 함수를 더 작은 단위로 쪼갤 수 있으며, 순수함수로 사용이 가능해진다. 이로인해 가독성과 유지보수가 용이해지는 효과가 생긴다.
아래와 같이 add 함수를 addCurry 로 커링할 수 있다.
// Noncurried version
const add = (a, b, c) => {
return a + b + c;
};
console.log(add(2, 3, 5)); // 10
// Curried version
const addCurry = (a) => {
return (b) => {
return (c) => {
return a + b + c;
};
};
};
console.log(addCurry(2)(3)(5)); // 10
// es6 Curried version
const addCurry = a => b => c => a + b + c; // 10
addCurry(func) 의 반환 값은 function (a) 형태의 래퍼다. addCurry(2)를 실행하면, function (b)가 반환된다.
// 반환된 function (b)
(b) => {
return (c) => {
return a + b + c;
};
}
마지막 5 인수를 넣고 function (c) 함수를 호출하면, a 와 b, c가 합쳐진 값으로 반환된다.
참고자료
https://ko.javascript.info/currying-partials
커링
ko.javascript.info
[JS] (번역)JavaScript Currying 이해하기⛓
🕺 원문 https://blog.logrocket.com/understanding-javascript-currying/ Understanding JavaScript currying - LogRocket Blog Learn what currying is in Javascript, why and where you should use currying, and how to implement it with code examples blog.logroc
xtring-dev.tistory.com
'Develop > JavaScript' 카테고리의 다른 글
[JavaScript] this와 call, apply, bind (0) | 2022.11.29 |
---|---|
[JavaScript] 이터러블 프로토콜을 따른 map의 다형성 (0) | 2020.04.12 |
[JavaScript] 호이스팅이란? (0) | 2020.04.05 |