Back Ground

고차 함수(Currying 커링) 본문

Javascript

고차 함수(Currying 커링)

Back 2018. 11. 28. 01:11


일단 고차 함수가 무엇인가.. 


  • 하나 이상의 함수를 인수로 취한다. (예: 절차적 매개변수)
  • 함수를 결과로 반환한다.


https://ko.wikipedia.org/wiki/%EA%B3%A0%EC%B0%A8_%ED%95%A8%EC%88%98




Redux를 하다보면 connet 사용 하다보면 

1
import {connect} from 'react-redux';
cs
1
2
3
4
const CounterContainer = connect(
    mapStateToProps,
    mapDispatchToProps
)(Counter);
cs

이렇게 하는 부분이 있는데 (Counter는 직접 만든 Class)

connect()();
즉, 이게 어떻게 구동 된다는 것 인지 이해를 못했는데





node_modules/react-redux/src/connect/connect.js
를 참고 해보면 


1
export default createConnect()
cs

connect를 생성 하는 함수를 내보내는 것을 확인 할수있는데



그 안에 리턴되고 있는지 function connet를 확인 해 보면 

1
 return connectHOC(selectorFactory, {...});
cs

또 함수로 리턴 되는 것을 알 수 있다.


connect()();를 이해 하자면 

curry이라고 하여 인자를 나눠서 보내는 방식과 흡사하여 

혼동 되지만






connect( connect함수의 인자 )( 리턴 인자 값 )

이렇게 된다.


즉,

1
2
3
4
5
function connect(mapStateToProps,mapDispatchToProps){
    (...)
 
    return connectHOC( Counter , {...});
}
cs


이렇게 리턴되는 함수의 인자값으로 Counter가 들어가게 된다.



Comments