_each의 콜백 부분의 처음 'val'은 어디서 오는 걸까요?

미해결질문
ryu sin 프로필

명강의 잘 듣고 있습니다! 계속 반복해서 들어도 이해가 안가는 부분 있어서 질문합니다. 제 머리로는 한계네요 :(

function _reduce(list, iter, memo) {

if (arguments.length == 2) {

memo = list[0];

list = _rest(list);

}

_each(list, function(val) { // 여기서 val 부분

console.log(val);

memo = iter(memo, val);

});

return memo;

}

_each의 콜백에서 첫번째 인자인 val은 어디서 오는 걸까요?

저게 'list' 안에 있는 각각의 요소인것은 알겠습니다. 그런데 val을 넣어주기 위해서는 우선

_each 펑션이 한번 돌아서 첫번째 인자를 저기에 쏴 줘야 하는데, 처음에 리스트를 돌기 전에 콜백의 'val' 부분에 인자를 넣어주는 녀석은 누구인지 궁금합니다.

혹시 콜백으로 들어온 함수는 바로 실행되는게 아니라,

  1. _each(list, callback(a)) 에서, list를 순회 먼저 하고 각각의 인자들에 callback을 나중에 대입하거나,

  2. list를 한번 돌고, 콜백에 인자 대입, 그다은 한버더 돌고, 그다음 콜백에 인자 한번 더 대입.

    이런 식인가요?

이런 강의 들어서 행운이라고 생각합니다. : )

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

_each 함수 내부의 반복문 안에서 실행해주면서 해당 값을 전달하고 있습니다. 천천히 확인해보시면 이해 되실거에요.

ryu sin 프로필
ryu sin 4달 전

감사합니다.

-_each(list, function(val){}) 이 부분에서 val은 콜백을 실행하는 부분이 아니라 선언을 하는 부분이라서 val의 값이 없어도 되는 거군요.

감사합니다 : )