• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    미해결

show( ) 함수를 오버라이드 한 후 다시 부모의 show()를 호출하는 이유가 궁금합니다.

22.03.20 02:57 작성 조회수 126

0

show() {
this.element.innerHTML = this.template.getTabList();
super.show();
}

[질문 1]

show() 함수를 오버라이드하여 탭뷰의 show()에서는 innerHTML에 탭 리스트를 추가하고

show()함수의 역할이 변경되었으니

다시 부모의 show()를 호출해서 디스플레이 하는거라고 이해하면 되나요 ?

 

[질문 2]

.map(this._getTab)
_getTab({ tabType, tabLabel }) {
return `
<li data-tab="${tabType}">${tabLabel}</li>
`;
}

_getTab 함수에 대한 질문인데요.. map안에서 _getTab에

() 가 붙지 않는 이유가 궁금합니다.

() 가 붙으면 함수의 호출이고 없으면 참조인것 같은데 왜 여기서 참조형식으로 써야하는지 잘 이해가 안가요

그리고 _getTab 구현부분에서 에서 인자를 넘겨주지 않았는데 {tabType,tabLabel} 을 어떻게 받아올 수있는지 궁금합니다.

 

 

 

 

 

답변 1

답변을 작성해보세요.

2

geuni님의 프로필

geuni

2022.03.20

1.

슈퍼 클래스의 show 함수를 재정의했기에 외부에서 show 메서드 호출 시 슈퍼 클래스의 show 메서드로 접근해서 호출 하는 게 아닌 서브 클래스의 show 메서드가 호출됩니다.

2.

Array.map(콜백 함수) 호출 시 메서드 내부에서 콜백 함수를 호출하고 파라미터를 주입합니다.

주입되는 파라미터: (현재 처리할 요소, 처리할 현재 요소의 인덱스,  호출한 배열)

그러므로 함수 자체만 넘겨주어도 내부에서 호출하며,

_getTab 메서드 내부에서 주입되는 파라미터를 사용할 수 있습니다.

 

geuni님 답변해 주셔서 고맙습니다.