리액트 currying & composition

제이밍·2022년 2월 26일
1
post-thumbnail

currying

currying 기본 사용예시

const order = store => menu => console.log(`{store}-${menu}`);
order('중국집')('자장면')
order('중국집')('짬뽕')

중복코드 해결

const orderCh = order('중국집');
const orderIt = order('이탈리아집');
orderCh('자장면')
orderIt('스파게티')
function order(store) {
	return function(menu){
 		 console.log('')
	}
}

composition

const compose = ?

compose 함수 = 여러가지 함수를 순차적으로 실행시킴
첫번째 함수의 리턴값을 다음 함수가 받아 처리 한다.

const data = compose(fullName, appendAddr, removeNames)(u);
u = {id:1, firstName: 'Gildong', lastName: 'hong'}

// n 개의 함수를 받아 차례로 실행시키는 함수
const compose = (...fns) => (obj) => fns.reduce((c, fn) => fn(c), obj); 

arr.reduce((sum, a)=> sum + a , 0)

const findName = (user) => ({
  ...user,
  fullName: '${user.firstName} ${user.lastName}'});

const appendAddr = (user) => (
	{...user, addr: 'seoul'}
);

const removeNames = (user) => {
	delete user.firstName
	delete user.lastName
	return user 
};

compose 실행결과

const data = compose(fullName, appendAddr, removeNames)(u);
console.log(data)

// {id:1, fullName: 'Gildonghong', addf: 'seoul'}

reference

시니어코딩님 유튜브 강의

profile
모르는것은 그때그때 기록하기

0개의 댓글