강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của oopsdev
oopsdev

câu hỏi đã được viết

Tìm hiểu về lập trình hàm bằng JavaScript (ES5)

Danh sách thành viên, bản đồ, bộ lọc

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

Viết

·

624

·

Đã chỉnh sửa

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

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

함수형-프로그래밍함수형-프로그래밍javascript

Câu trả lời 2

1

mduniv님의 프로필 이미지
mduniv
Người chia sẻ kiến thức

감사합니다 :)

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],,, 가 반복문에서 전달되므로

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

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

 

 

 

oopsdev님의 프로필 이미지
oopsdev
Người đặt câu hỏi

맞는거 같습니다~

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

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

답변 감사합니다 :)

Hình ảnh hồ sơ của oopsdev
oopsdev

câu hỏi đã được viết

Đặt câu hỏi