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는 그 함수 이름으로 무엇을 해야하는지 알지 못해서 무시하게 된다.
참고자료