728x90
콜백 함수는 다른 함수에 매개변수로 전달되어 그 함수의 실행이 끝난 후 호출되는 함수이다
주로 비동기 작업을 처리하거나, 특정 이벤트가 발생했을 때 주로 사용된다
function func(callback) {
callback();
}
function callback() {
console.log("hello");
}
func(callback); //hello
콜백함수는
- 재사용성
- 비동기 처리
에서 장점이 나타난다
재사용성 예시
function repeat(count) {
for (let idx = 0; idx < count; idx++) {
console.log(idx)
}
}
function repeatDouble(count) {
for (let idx = 0; idx < count; idx++) {
console.log(idx * 2)
}
}
repeat(3) //0,1,2
repeatDouble(3) //0,2,4
이렇게 유사한 함수를 아래와 같이 콜백함수를 이용하여 재사용성있게 사용할 수 있다
function repeat(count, callback) {
for (let idx = 0; idx < count; idx++) {
callback(idx)
}
}
repeat(3, idx => console.log(idx)) //0,1,2
repeat(3, idx => console.log(idx * 2)) //0,2,4
비동기 작업 예시
console.log('Start');
setTimeout(function() {
console.log('hello');
}, 2000);
console.log('End');
이렇게 비동기 작업이 완료된 후에 콜백을 사용할 수도 있다
하지만 이를 너무 남발하면 코드가 복잡해지고 가독성이 떨어지는 콜백지옥 에 빠지게 되는데, 이는 Promise, async/await으로 해결 가능하다
728x90
'Frontend > JavaScript' 카테고리의 다른 글
[js] + 를 사용하여 숫자형으로 변환하는 방법 (0) | 2024.04.07 |
---|---|
[js] ==와 ===의 차이점과 비교연산자 (1) | 2024.04.07 |
[js] &&와 || 의 활용법 : 단락회로평가 (0) | 2024.03.01 |
[js] jquery (0) | 2023.09.04 |
[js] 변수에 데이터저장하는 방식의 차이(배열, 객체 vs 기본 데이터 타입) (1) | 2023.09.03 |