으니의 개발로그

[JavaScript] 간접적 vs 직접적 함수 실행 본문

Front-end/JavaScript

[JavaScript] 간접적 vs 직접적 함수 실행

아잉으니야 2023. 1. 11. 08:07

hello() vs hello

  • 보통 이름으로 정의된 함수를 호출할 때는 괄호를 추가한다. (함수가 필요한 모든 매개변수가 괄호 안에 들어가거나 매개변수가 필요하지 않은 경우에는 빈 괄호를 추가한다) => hello()
  • 가끔은! 함수로 바로 실행하고 싶지 않을 때도 있다. JavaScript 미래의 어느 시점에(예를 들어 일부 이벤트가 발생할 때) 어떤 기능이 실행되기를 원할 수도 있다. 이 경우에는 함수를 직접 호출하는 대신 JavaScript에 함수 이름을 제공한다. => someButton.addEventListener('click', hello); 이 스니펫은 JavaScript에게 'someButton'이 클릭되면 hello를 실행하라고 지시하는 스니펫이다.
  • 그럼 코드 어딘가에 hello를 추가하면 어떻게 될까? 답부터 말하자면 아무런 효과가 없다. 왜냐하면 함수의 이름만 있을뿐 JavaScript에게 다른 정보를 제공하지 않았기 때문이다. 그러면 JavaScript는 그 함수 이름으로 무엇을 해야하는지 알지 못해서 무시하게 된다.

 

참고자료

[강의] JavaScript 완벽 가이드 : 초급 + 고급 마스터 과정