포스트

JavaScript에서 setTimeout 콜백에 파라미터 전달하기

setTimeout 함수 개요

JavaScript에서 setTimeout 함수는 특정 시간이 지난 후에 함수를 실행하는 데 사용됩니다. 이 함수는 두 개의 파라미터를 받습니다: 첫 번째는 실행할 함수이고, 두 번째는 시간을 밀리초 단위로 나타냅니다. 그런데 이 함수를 사용하면서 콜백 함수에 추가적인 파라미터를 전달하고 싶을 때가 있습니다. 이 문제를 해결하는 몇 가지 방법이 있습니다.

방법 1: 익명 함수 사용하기

익명 함수(Anonymous Function)는 이름이 없는 함수입니다. 이를 사용하여 setTimeout에 콜백 함수와 함께 파라미터를 전달할 수 있습니다.

1
2
3
setTimeout(function() {
    myFunction(param1, param2);
}, 2000);

여기서 myFunction은 실행할 함수이고, param1param2는 그 함수에 전달할 파라미터입니다.

방법 2: bind 메서드 활용하기

JavaScript의 bind 메서드를 사용하면 함수에 파라미터를 미리 설정할 수 있습니다. 이 메서드는 새로운 함수를 반환합니다.

1
setTimeout(myFunction.bind(null, param1, param2), 2000);

bind의 첫 번째 파라미터는 함수의 this 값입니다. 여기서는 null을 사용했습니다.

방법 3: 화살표 함수 활용하기

ES6에서 도입된 화살표 함수(Arrow Function)도 setTimeout에서 파라미터를 전달하는 데 사용할 수 있습니다.

1
setTimeout(() => myFunction(param1, param2), 2000);

화살표 함수는 코드를 더 간결하게 만들어 줍니다.

결론

JavaScript에서 setTimeout 함수를 사용하여 특정 시간 후에 함수를 실행할 때 추가적인 파라미터를 전달하는 방법은 여러 가지입니다. 익명 함수, bind 메서드, 화살표 함수 등을 활용하여 이 문제를 해결할 수 있습니다. 각 방법은 상황과 필요에 따라 선택하면 됩니다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.