티스토리 뷰
커리 패턴의 가장 중요한 쓰임새는 partially(부분적인) 쓰임이 가능한 패턴이다.
**lodash 라이브러리(_.curry)**를 사용하면 편하게 쓰긴 하지만 구현한다고 해서 힘들지 않다.
기본 구현 방법
function curry(f) {
return function(a) {
return function(b) {
return function(c) {
return f(a, b, c)
}
}
}
}
function sum(a,b) {
return a + b
}
const curried = curry(sum)
curried(1)(2) // 3
function sum(a,b) {
return a + b
}
const curried = _.curry(sum)
curried(1,2) // 3 일반적인 호출
curried(1)(2) // 3 partially 호출
실제 이걸 왜 이렇게까지 쓰지? 란 생각을 하며 봤는데
앞서 기술되어있지만 커리 패턴은 부분적인 쓰임에 사용하는 것으로 보여진다.
예:
function log(timestamp, importance, message) {
console.log(timestamp, importance, message)
}
const curried = _.curry(log)
위 로직상 우리는 로그를 찍고 싶을 때 timestamp를 넣어야하는데 매번 넣어주기 귀찮다.
이럴때 커리패턴의 부분적 쓰임의 활용도가 높아진다.
const logNow = curried(new Date())
logNow('BUG')('test msg') // 날짜 BUG test msg
const InfoLog = logNow('INFO')
const bugLog = logNow('BUG')
infoLog('info msg'). // 날짜 INFO info msg
bugLog('bug msg') // 날짜 BUG bug msg
이런식으로 만들어졌다. 몇줄이지만 이로 인해서 구현부에서 잃을 것은 없다.
log를 그대로 쓸 수도 있기 때문이다.
좀더 다형성이 높아지는 것이 아닐까 싶다.
커링 적용하면 평소에도 일반적인 호출도 가능하고 partial(부분)을 반환하여 사용하기도 한다.
'FRONT > javascript' 카테고리의 다른 글
Proxy (0) | 2024.03.08 |
---|---|
자바스크립트 (기초편) (0) | 2022.04.29 |
자바스크립트 (쌩기초편🤷🏻♀️) (0) | 2022.04.29 |
숫자 카운팅 모션 (정한 숫자와 시간에 맞게 올라가는 모션) (0) | 2021.07.05 |
Youtube API 다중 동영상 제어 (0) | 2021.07.01 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 웹퍼블리셔
- jQuery
- youtube
- 환경설정
- Issue
- curring
- 퍼블리싱
- vue
- frontend
- 퍼블리셔
- 포세이돈되기까지
- props
- 웹퍼블리싱
- 이론공부
- 리액트생명주기
- component
- jeonst
- vue.js
- 수영전후기
- WAI-ARIA
- 웹접근성
- javascript
- ES5
- js
- Aria
- 자바스크립트
- 수영하기전후기
- 커리패턴
- css3
- API
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
글 보관함