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

정민교님의 프로필 이미지

작성한 질문수

한 번에 끝내는 자바스크립트: 바닐라 자바스크립트로 SPA 개발까지

2. 동물 앨범 만들기-2-2

onClick 함수

해결된 질문

24.08.15 16:50 작성

·

53

1

$tabBar.forEach((elm) => {
  elm.addEventListener('click', () => {
    onClick(elm.id);
  });
});

 이 onClick 함수 this.onClick으로 호출하지 않았는데,

이러면 TabBar 인스턴스의 onClick 메소드는 쓰지 않는 거 아닌가요?

 

답변 1

1

효빈 Hyobin님의 프로필 이미지
효빈 Hyobin
지식공유자

2024. 08. 15. 17:02

안녕하세요 🙂
질문에 작성해주신 코드는 TabBar 인스턴스의 onClick 메서드를 사용하지 않은것이 맞습니다.

$tabBar.forEach((elm) => {
  elm.addEventListener('click', () => {
    this.onClick(elm.id);
  });
});

해당 컴포넌트에서 onClick 함수를 매개변수로 전달받았기 때문에 onClick으로 함수를 호출해도 오류가 발생하지 않고 있지만, 우리는 TabBar 인스턴스와 연결된 메서드를 호출하고 있음을 명확하게 나타낼 수 있도록, 그리고 나중에 TabBar의 내부에서 onClick 메서드에 추가적인 로직을 넣어야 할 경우를 대비해 위의 코드처럼 this.onClick 함수로 작성하는 것이 맞습니다!

해당 부분은 빠르게 수정해두도록 하겠습니다. 오류 제보 감사합니다 🙇🏻‍♀️