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

home2 게시판 JavaScript, TS 게시판 this 키워드를 알아보자 2// this 질문

this 키워드를 알아보자 2// this 질문

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

    윤창석
    참가자

    객체안에 함수를 넣고 그 함수안에 또 함수를 넣어서 this를 출력하는걸 해봤는데

     

    설명은 제일 안쪽 function()은 전역함수가 되서 함수내부에서 console.log(this)

    는 window를 출력한다고 알려주셨는데요

     

    코드를 계속 따라쳐도 계속 undefined가 나오길래 찾아보니 use strict가 선언되있어서더라구요.

    그렇다면 use strict를 선언했을때는 this가 함수안에들어있기때문에 객체안에 없다고 판단해서

    undefined가 출력되는건가요?

     

    비슷한 궁금증이 생겨서 임시 코드를 만들어봤는데요.

    함수가 전역함수가 된다는게 좀 의아한게 예를들어 객체안의 함수안의 함수를 만들어봤거든요?

     

    let normal = {
        fck : function(){
            function fck1(){
                console.log('하잉');
            }
        }
    }

    normal.fck()
    fck1()

     

    이런 함순데 객체안의 벨류값으로 함수를 넣었고 normal.fck()으로 함수를 만들어줬는데요.

    fck1()은 실행이 안되더라구요. 전역함수인데 왜 블록 밖에서는 함수가 정의되지 않았다고 뜨는건가요?

    #30430

    codingapple
    키 마스터

    use strict 사용하면 바깥 this는 그냥 자동으로 undefined가 됩니다

    함수 안에서 만든 함수나 변수는 함수 바깥에서 사용할 수 없습니다 

    #30464

    윤창석
    참가자

    그렇다면 강의내용에서 말씀하신 함수 블록내 forEach함수는 js내장함수라서 this가 window를 받은건가요?

    #30468

    codingapple
    키 마스터

    forEach의 콜백함수는 아무데서나 만든 함수기 때문에 this는 그냥 window입니다 

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 호 / 개인정보관리자 : 박종흠