• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

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

19.02.18 18:20 작성 조회수 121

0

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

강의에 따르면, 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));

답변 2

·

답변을 작성해보세요.

0

ryu sin님의 프로필

ryu sin

질문자

2019.02.18

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

0

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

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