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

home2 게시판 JavaScript, TS 게시판 this에 관한 질문

this에 관한 질문

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

    박성현
    참가자

     

    15, 16의 실행 결과가 각각 다릅니다.

    함수를 새로 변수에 저장했냐 안했냐에 따라서 this의 의미가 달라지는거 같은데

    메소드를 변수로 새로 저장했을때 this의 값이 바뀌는 이유는 가물가물하게 오는 거 같은데

    정확히 어떤 메커니즘으로 바뀌는지 궁금합니다 ㅠㅠ

     

    스크립트 전문입니다.

     

    <script>

    window.name = "Mike Tyson";

    const me = {
    name: "Tyler",
    sayName() {
    console.log(this.name);
    }
    };

    const sayName = me.sayName;

    me.sayName();
    sayName();

    </script>

     

    #19385

    박성현
    참가자

    이건 제가 혼자고민하다 나름 해석하게되어서 여쭤봅니다.

     

    12번줄에서 me.sayName라는 변수는 위에서부터 코드가 해석되면서 미리 채워지는 것이죠?

    그렇기 때문에,  15줄에서 함수의 사용은 오브젝트의 메소드로써 사용되었기에 결과로 Tyler가,

    16줄 함수의 사용은 12에서 이미 채워졌기 때문에 그냥 전역함수로써 사용되서 Mike가..

    제가 해석한게 맞는지도 궁금합니다 ㅠ

    #19397

    codingapple
    키 마스터

    아무데서나 var sayName = 어쩌구 이렇게 변수 만들면 

    window라는 object자료에 .sayName 항목이 추가가 됩니다 

    그래서 this가 window 이렇게 변하는듯요  

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

About

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

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

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