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

home2 게시판 JavaScript, TS 게시판 화살표 함수에대해

화살표 함수에대해

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

    우효창
    참가자

    var 자료 = {
        data : [1,2,3,4,5]
        }

        let basic = 0;

        자료.전부더하기 = ()=>{
            this.data.forEach(function(a){
               
                    basic = basic +a
               
            })
            console.log(basic)
        }

        자료.전부더하기();

     

     

    data배열값들을 모두 더해 출력하려는 목적입니다.

    this 대신 자료라고 쓰면 동작이 되는데,

    this를 쓰면 에러가 납니다.

    돌아가서, 화살표함수 대신 function을 쓰면

    this.data~~ 가 기능이 되는데

    화살표를 쓰면

    this.자료.data 라고 해야 기능이 되네요.

    function 에서는 왜 this.data만 해도 자동으로 오브젝트내의 배열을 찾아주는건지,

    화살표에서는 왜 this.자료.data 까지 해야 찾아주는건지의 차이를 모르겠습니다. ㅠㅠ

    function은 일반함수라 this는 윈도우를 가리킬것이고,

    화살표도 곧 윈도우를 가르키는게 아닌가요?

    #30276

    codingapple
    키 마스터

    지금 function을 바깥에 그냥 정의한게 아니라 object 안에 끼워넣은거라 그렇습니다

    var 자료 = { 전부더하기 : function(){  } } 이거한거랑 똑같은듯요 

    그래서 function 쓰면 그 안의 this라는 키워드를 알맞게 재정의해주고 arrow function 쓰면 재정의같은거 안해줍니다 

    #30322

    우효창
    참가자

    완벽히 이해 했습니다 .

    감사합니다 !

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