작성
·
213
1
github에 있는 functional es 코드를 보는중에 정말 이해가 안되는부분이 있어 질문드립니다.
const aa = (a, ...before) => go(
a,
a => a + 3,
...before, // <--- before에 걸리는 함수가 있으면 여기에 추가될 예정
a => a + 6,
console.log);
aa(1);
...before 이런 기법을 통해서 앞으로 올 함수들과 조합할 수 있다고 하셨는데요. go가 중간에 []를 만나게되서 에러가 나야되지않나요? 실제로 디버깅해보면 문제없이 작동하고 go가 받은 인자들을 reduce로 넘길때 ...before은 무시됩니다. 그래서 ...before대신에 []을 그냥 넣어봤더니 이번엔 에러가 납니다.
go나 reduce내부에서 []나 undefined를 만났을때 다루는 코드가 있나? 하고 코드를 봤더니 그런것도 없습니다.
왜 ...연산자를 통해 받은 ...before만 go의 내부에서 reduce함수로 갈때 무시되는건가요?