틀리거나 추가할 내용 있으면 알려주시면 감사하겠습니다.
출처: 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이 실행되는 것이다.