>웹 프론트엔드 >JS 튜토리얼 >JavaScript 함수 호출에서 괄호가 언제 중요합니까?

JavaScript 함수 호출에서 괄호가 언제 중요합니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-25 14:56:11289검색

When Do Parentheses Matter in JavaScript Function Calls?

함수 선언과 호출의 괄호

JavaScript에서 함수 선언과 호출의 차이는 구문에 나타납니다. 함수 선언은 중괄호로 끝나지만 함수 호출은 괄호로 끝납니다.

다음 예를 고려하세요.

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

여기서 setTimeout 함수는 함수 참조를 인수로 예상합니다. myFunction을 작성하면 함수 자체를 참조하게 됩니다. 이와 대조적으로 myFunction()은 실제로 함수를 호출합니다.

간단해 보이지만 예외가 있습니다. setTimeout은 다음 코드와 같이 함수를 반환하는 함수를 허용할 수도 있습니다.

function myFunction() {
  return function() {
    alert("ohai");
  }
}

// or

const myFunction = () => () => alert("ohai");

이 시나리오에서 setTimeout(myFunction(), 1000)은 다음과 같습니다.

  1. myFunction 함수를 호출하고 반환 값을 저장합니다.
  2. myFunction이 수행하는 함수를 가져옵니다. 반환됩니다.

이렇게 하면 매초마다 알림이 표시되도록 효과적으로 예약됩니다.

따라서 중요한 차이점은 괄호를 생략하면 함수 개체 자체를 참조한다는 것입니다. 괄호를 포함하면 함수가 호출됩니다. 이는 var myFunction = function() { ... } 등의 함수 선언과 const myFunction = () => 등의 함수 표현식에 적용됩니다. { ... }.

위 내용은 JavaScript 함수 호출에서 괄호가 언제 중요합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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