• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

_get 함수 부분이 너무 이해가 안갑니다 ㅠ

23.02.16 01:00 작성 23.02.16 01:03 수정 조회수 357

0

안녕하세요.

지금 강의를 여러번 돌려보고 천천히 생각하는데도

전혀 이해가 되지 않습니다 ㅠ

  // 2. _get 만들어 좀 더 간단하게 하기

console.log(
  _map(
    _filter(users, function(user) { return user.age >= 30; }),
    _get('name')));

    // function(user) { return user.name}

여기 코드에서 _get('name')에 인자가 더 들어가야되지않나여??...

예시들 중에서

var user1 = users[0];
console.log(user1.name);
console.log(_get(user1, 'name'));
console.log(_get('name')(user1));

var get_name = _get('name');

console.log( get_name(user1) );

여기서 보면 _get('name')(user1)이라고 썼는데

_map에서 사용했을때 어떻게 저렇게 동작이 되는지 잘 이해가 안되네요 ㅠ 설명 좀 부탁드리겠습니다 ㅠ

다른 질문들 보니 저랑 같은 생각하시는 분께 답변이차근차근 생각해보라고 되어있는데 계속 봐도 이해가 안가서 다시 질문올립니다 ㅠ

답변 2

·

답변을 작성해보세요.

1

감사합니다 :)

0

김재희님의 프로필

김재희

2023.02.20

제가 이해한게 맞는지는 모르겠는데,,
map 함수 내부에서 mapper(val) 의 val 가 보조함수인 _each 로 되어있고 반목문의 list[i] 값을 할당해 주고 있습니다.

근데 _get 만 단독으로 사용할 경우

_get('name')(users[3]);

get('name')(users[4]);
와 같이 사용하고 있죠.
그래서
map 함수에서 인자로 get('name') 을 넘겨주게 되면
내부에서 실행하게 될때는
_get('name')(list[i]) 로 호출하게 되고
받은 list[0], list[1],,, 가 반복문에서 전달되므로

위와 같은 결과가 나온 것이 아닌가 합니다.

틀린 점이 있다면 소중한 댓글 부탁드립니다.

 

 

 

맞는거 같습니다~

콘솔에서 찍엇을때 계속 함수로 나와서 이해못했는데

혹시 몰라서 디버깅 찍어서 값을 보다 보니 이해했습니다.

답변 감사합니다 :)