1. function main (value) {
2. console.log(value);
3. value();
};
4. main(20);
5. main(4);
1. function main (value) {
2. console.log(1);
3. console.log(2);
4. value();
5. console.log("end");
};
6. main (function sub () => {
7. console.log("I am sub");
});
8. main (() => {
9. console.log("I am sub");
});
이렇게 사용이 가능합니다.
그러면 이렇게 1, 2, "i am sub", "end"가 나오는 걸 볼 수 있습니다.
1. function repeat(count) {
2. for (let i = 1; i <= count; i++) {
3. console.log(i);
}
};
4. repeat(5);
허나 이렇게 하면 중복 코드
1. function repeat(count) {
2. for (let i = 1; i <= count; i++) {
3. console.log(i);
}
};
4. repeat(10);
이라던지 계속 작성해야 합니다. 그래서 count 옆에 매개변수를 하나 더 추가해주면
1. function repeat(count, callback) {
2. for (let i = 1; i <= count; i++) {
3. callback(i);
};
};
4. repeat(5, (i) => {
5. console.log(i);
});
6. repeat(10, (i) => {
7. console.log(i * 2);
});
8. repeat(20, (i) => {
9. console.log(i * 4);
})
이렇게 추가할 수 있습니다.
즉 4번의 상태는 5, i인 상태이며 i는 1부터 시작하니 (for문의 첫 let i = 1이므로) 1, 2, 3, 4, 5 입니다.
위와 같이 repeat(10, (i) => {}) 이렇게 되어있는데
count를 10번 세고, callback으로 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 입니다.
근데 i * 2가 되어있어서 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 이 됩니다.
6번과 같습니다. repeat(20, (i) => {}) 이 상태에서
count를 스무번 셉니다. 근데 * 4로 곱해야죠.
곱해서 결과는 4, 8, 12, 16, 20 ... 80 최종 수치는 80이 됩니다.
이렇게 callback을 써야 코드도 간결하고 호출을 부르는 방법도 쉬워지는 걸 알았는데
이제는 익숙해지고 터득 할 차례인 것 같습니다.
매개변수를 이용해 활용하니 코드가 깔끔해진다는 걸 느낄 수 있었습니다.