• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 JavaScript, TS 게시판 extends , super 질문 입니다.

extends , super 질문 입니다.

4 글 보임 - 1 에서 4 까지 (총 4 중에서)
  • 글쓴이
  • #11470

    이도아
    참가자

    <script>

    class 할아버지 {
      constructor(name){
        this.성='Kim';
        this.이름= name;
      }
      sayHi(){
        console.log('안녕 저는 할아버지에요');
      }
    }

    //var 할아버지1 = new 할아버지('만덕');

    class 아버지 extends 할아버지 {
        constructor(name){   ***************************************************************이부분!!
        super(name);
        this.나이 = 50;
      }
      sayHi(){
        console.log('안녕 저는 아버지에요');
        super.sayHi();
      }
    }

    var 아버지1 = new 아버지('창렬');

    </script>

     

     

     

    제가 이 부분 이라고 표시한 곳 보시면 , 자식 class의  파라미터 안에 부모 class의 파라미터인 name이 들어가 있는데요

    강의 끝부분엔 저게 지워져있더라구요

    저부분(자식constructor 파라미터)에 부모 constructor의 파라미터를 넣는건지 아닌지 알려주셨으면 좋겠습니다!

    만약 넣는다면 name1, name2 이렇게 두 개가 있으면 두 개 전부 넣으면 되는걸까요??

    super() <- 이 파라미터에만 넣으면 되는건지 constructor 파라미터에도 넣어야 하는건지 궁금합니다. 

    #11492

    codingapple
    키 마스터

    constructor 파라미터는 언제나 자유작명입니다 extends 하든 말든 파라미터는 아무렇게나 맘대로 쓰시면 되고 

    class 아버지 {

      constructor(파라미터, 파라미터2) {

      }

    }

    이런식으로 하시면 이제 new 아버지('안녕', '반가워') 쓸 때 파라미터를 2개까지 입력해줄 수 있겠네요 

     

     

    근데 특정 파라미터를 부모 class의 constructor에 집어넣고싶을 때만 super를 가져와서 

     

    class 아버지 extends 할아버지 {

      constructor(파라미터, 파라미터2) {

        super(파라미터2)

      }

    }

    이렇게 쓰면 됩니다 

    그럼 new 아버지('안녕', '반가워') 이렇게 하면 

    '반가워'라는건 할아버지 constructor에 들어가겠군요 

     

    #11496

    이도아
    참가자

    ㅠㅠ 잘 이해가 안되서 그런데...

     

    강의 내용에는

     

    <강의내용>

    super()라는 이상한 함수는

    "extends로 상속중인 부모 class의 constructor()"를 의미합니다. (암기사항)

    쉽게 말하면 할아버지 class의 constructor() 이거랑 똑같다는 소리입니다. (암기해야됨)

    그래야 이제 에러없이 this.나이 이런걸 추가하실 수 있습니다. (암기 ㄱ)

     

    근데 할아버지 class의 constructor()에는 name 파라미터를 입력할 수 있었죠?

    그것도 똑같이 따라서 명시해주셔야 할아버지가 가진 모든 속성들을 정확히 상속받을 수 있습니다. 

     

    </강의내용>

     

     

    이렇게 되어있던데,  답변해주신대로 이해하자면 super()는 '상속'이 아니라 역으로 자식 class의 파라미터에 값을 집어 넣어서 부모 class의 값을 나오게 하는 그런건가요..? 자식__proto__ 이렇게해서 값 넣는 것처럼요..?

     

    <그럼 new 아버지('안녕', '반가워') 이렇게 하면 

    '반가워'라는건 할아버지 constructor에 들어가겠군요 >

     

    이 부분이 잘 이해가 안가네요...ㅠㅠ ...

     

     

     

     

    #11504

    codingapple
    키 마스터

    super는 부모 class에서 만들어놨던 constructor 라는거 그대로 여기에 복붙해달라는 소리입니다

4 글 보임 - 1 에서 4 까지 (총 4 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠