JavaScript에서 setTimeout을 활용하는 경우 지정된 지연 시간을 무시하고 함수가 즉시 실행되는 문제가 발생할 수 있습니다. . 이 예외 현상은 일반적인 함정으로 인해 발생할 수 있습니다.
다음과 같이 setTimeout 인수 내에서 함수를 호출할 때 문제가 발생합니다.
setTimeout(testfunction(), 2000);
이 구문은 즉시 testfunction()을 호출하고, setTimeout은 해당 함수 호출의 반환 값이 지정된 지연 후에 실행되도록 예약합니다. 결과적으로 함수는 즉시 실행되고 타이머는 중복됩니다.
이 문제를 해결하려면 호출하지 않고 함수 자체를 전달해야 합니다.
setTimeout(testFunction, 2000);
testFunction 뒤에 괄호가 없는 것에 주목하세요. 이 접근 방식을 사용하면 지연이 경과한 후 함수 실행이 예약되어 의도한 대로 작동할 수 있습니다.
위 내용은 왜 `setTimeout`이 내 기능을 즉시 실행합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!