• 카테고리

    질문 & 답변
  • 세부 분야

    웹 개발

  • 해결 여부

    미해결

showValue() 사용

21.05.06 14:34 작성 조회수 163

0

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

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

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

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

답변 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() {}은 함수이기 때문에 올바르게 동작하는 것이고요~