강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

전인해님의 프로필 이미지
전인해

작성한 질문수

인터랙티브 웹 개발 제대로 시작하기

스크롤 위치에 따라 오브젝트 조작하기

showValue() 사용

작성

·

296

0

왜 window 이벤트리스너에 showValue()함수를 넣을 때

window.addEventListener('scroll', showValue())로 하면 실행되지않고 showValue()를 함수로 한번 더 감싸 window.addEventListener('scroll', function(){showValue()})

이렇게 해야 실행이 되는지 궁금합니다!

그리고 항상 강의 잘보고있습니다 ㅎㅎ

답변 1

1

1분코딩님의 프로필 이미지
1분코딩
지식공유자

addEventListener 메서드의 두번째 매개변수 자리에는 함수가 들어가야 하는데요,
showValue()는 showValue 함수를 실행한 결괏값을 넣은 것이라 동작이 제대로 되지 않는 것이랍니다.

만약 showValue 함수가 아래와 같이 100을 리턴하는 함수라고 가정한다면
function showValue() {
    return 100;
}

window.addEventListener('scroll', showValue());
이렇게 넣게되면
window.addEventListener('scroll', 100);
이렇게 넣은 것이나 똑같답니다.
showValue 함수의 리턴값이 100이니까요.

window.addEventListener('scroll', function() { showValue() });
function() {}은 함수이기 때문에 올바르게 동작하는 것이고요~

전인해님의 프로필 이미지
전인해

작성한 질문수

질문하기