curryr 부분이 이해가 잘 안 갑니다.

미해결질문
ryu sin 프로필

안녕하세요. 좋은 강의 잘 듣고 있습니다.

강의에 따르면, curryr은 fn(a, b) 부분의 인자 순서를 fn(b, a)로 바꿔서 실행 값을 변화시킨다고 설명해 주셨습니다. 실제로도 결과가 그렇게 나옵니다.

그러나 저로서는 아무리 봐도 이해가 안가는게, 결국 인자의 순서와 별게로 값을 만드는 것은 함수의 실행부, 다시 말해 {} 이 중괄호 안의 부분이 결정하는데, 인자의 순서와 별계로 괄호 안의 실행부는

return a-b 인데 어째서 다른 결과를 가져오는지 이해가 가지를 않습니다 ㅜ.ㅜ

function _curryr(fn) {

return function(a, b) { //인자가 a, b 라고 해도 다 받아야 하는 것은 아니다. a 부터 순서대로 한 개씩만 받아도 된다.

return arguments.length == 2 ? fn(a, b) : function(b) { return fn(b, a); };

}

}

var sub = _curryr(function(a, b){

return a - b;

})

console.log(sub(10, 5));

var sub10 = sub(10);

console.log(sub10(5));

유인동 프로필
유인동 9달 전

fn(b, a); 부분 때문에 그렇습니다.

천천히 봐보세요! 화이팅!

ryu sin 프로필
ryu sin 9달 전

넵. 다시보니이해가 되네요. 콜백으로 들어가는 a, b는 fn(b, a)랑 이름만 같지 관계가 없는데 a, b 를 써서 헷갈린들 합니다.

지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강좌들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스