작성
·
497
·
수정됨
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
제가 이해한게 맞는지는 모르겠는데,,
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],,, 가 반복문에서 전달되므로
위와 같은 결과가 나온 것이 아닌가 합니다.
틀린 점이 있다면 소중한 댓글 부탁드립니다.
맞는거 같습니다~
콘솔에서 찍엇을때 계속 함수로 나와서 이해못했는데
혹시 몰라서 디버깅 찍어서 값을 보다 보니 이해했습니다.
답변 감사합니다 :)