>웹 프론트엔드 >JS 튜토리얼 >`setTimeout`에서 함수 호출을 항상 괄호로 묶지 않는 이유는 무엇입니까?

`setTimeout`에서 함수 호출을 항상 괄호로 묶지 않는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-23 18:27:17757검색

Why Don't Parentheses Always Surround Function Calls in `setTimeout`?

함수 호출에서 괄호를 사용해야 하는 경우

다음 코드를 살펴보면

var myFunction = function() {
  setTimeout(myFunction, 1000);
}
myFunction();

이유가 궁금할 수도 있습니다. setTimeout 내의 함수 호출에는 괄호가 필요하지 않지만 독립적인 함수 호출에는

구별 이해

  • myFunction: 이 이름은 함수 정의를 나타냅니다.
  • myFunction(): 괄호를 추가하면 function.

Timeout 함수 인수

setTimeout은 함수 참조를 인수 중 하나로 사용합니다. 주어진 코드에서 myFunction은 콜백 함수로 참조됩니다.

Timeout 인수의 괄호

setTimeout(myFunction(), 1000)에 괄호를 포함하면 의도하지 않은 결과가 발생할 수 있습니다. myFunction이 함수를 반환하는 경우(예: 화살표 함수 사용) 이러한 경우 setTimeout은 함수 참조 자체 대신 myFunction의 반환 값을 받습니다. 이로 인해 함수가 반복적으로 실행되거나 예상치 못한 동작이 발생할 수 있습니다.

따라서 함수 참조가 필요한 setTimeout 또는 유사한 메서드를 사용할 때는 일반적으로 함수 인수에 대해 괄호를 생략하는 것이 좋습니다.

위 내용은 `setTimeout`에서 함수 호출을 항상 괄호로 묶지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.