Javascript eventlistener에서 왜 parameter를 뺀 function만 쓰는가

Wonho Lee·2020년 8월 28일
0

틀리거나 추가할 내용 있으면 알려주시면 감사하겠습니다.

출처: https://stackoverflow.com/questions/20885236/javascript-function-in-setinterval

자바스크립트 강의를 들으면서 이벤트 리스너 관련 부분에서 도저히 이해가 안되는 부분이 있었다.
분명 parameter에 function이 들어가는데 function 뒤에 parameter를 쓰지않고 호출하는게 이해가 안됬었다.

window.addEventListener("resize", resizeHandler());

대신

window.addEventListener("resize", resizeHandler);

이 코드를 쓰는 것이었는데 stackoverflow 설명을 보니 이해가 됬다.

Javascript에서는 다른 언어와 달리 function조차도 Object 취급을 받는다.
그래서 function에 parameter없이 호출을 하게되면 그 function에 대한 reference를 넘겨주는 것이다.
하지만 parameter와 함께 호출을 하게되면 function을 바로 execute하고 결과를 return하는 것이다.

window.addEventListener("resize", resizeHandler());

이 코드는 resize여부와 관계없이 resizeHandler()란 function이 바로 실행되어 나오는 것이고

window.addEventListener("resize", resizeHandler);

이 코드는 resize했을 때 resizeHandler()란 function이 실행되는 것이다.

0개의 댓글