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

home2 게시판 JavaScript, TS 게시판 class에서 constructor 바깥에 함수를 작성하고 this를 사용하면??

class에서 constructor 바깥에 함수를 작성하고 this를 사용하면??

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

    이상조
    참가자
    자바스크립트 객체지향 강의를 듣다가 궁금한점이 생겨 질문드립니다.
    class로 자식을 찍어내는 부모를 하나 만들었는데요,
    constructor 내부가 아니라 바깥에 sayHi함수를 하나 만들어서 prototype으로 사용하려고 합니다.
    sayHi 함수는 내부에 sayHello함수 정의 및 실행하는 코드가 포함되어 있구요.
    sayHello 함수 내부에 사용된 this가 node환경이든 크롬이든 어디서든 undefined로 나오는데 왜 그런지 알 수 있을까요??
    
     
    ```javascript
    class 부모 {
      constructor(이름, 나이) {
        this.name = 이름;
        this.age = 나이;
      }
      sayHi() {
        console.log(this.name); //이녀석은 park 출력되고
        function sayHello() {
          console.log(this); // 이녀석이 undefined로 출력됩니다.
        }
        sayHello();
      }
    }
    var 자식 = new 부모("Park", 10);
    자식.sayHi(); // sayHi 함수를 실행
    
    ```
    
    저는 sayHello가 근본없는 일반함수라서 window를 출력할 줄 알았는데 왜 undefined가 나오는지 궁금합니다!
    #48340

    codingapple
    키 마스터
    함수안에서 함수만들고 실행하면 
    그 함수는 전역함수가 아니고 함수안에서만 쓸 수 있는 로컬 함수기 때문에 window 이런데 장착되지 않아서 
    this 출력하면 window는 안나올듯요
2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 답변은 로그인 후 가능합니다.

About

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

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

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