자바스크립트 리뷰

객체의 속성으로 함수를 쓸때, 화살표 함수는 쓰지 않는다. [혼공자6-1-5]

가문비7 2023. 4. 8. 00:05
      const test = {
        a: function () {
          console.log(this)
        },
        b: () => {
          console.log(this)
        }
      }

      // 메소드를 호출합니다.
      test.a()
      test.b()

 

객체 내에서 속성으로써 함수가 올 때, this 키워드가 뜻하는바가 많이 달라진다. 속성 a의 this는 test 객체 자체를 뜻하고, 

속성b의 this는 여기서는 window 객체를 뜻한다. window객체는 쓸 필요가 별로 없는 것 같다. 객체의 속성으로 함수를 쓸때는, 축약형 화살표함수가 아니라 function(){} 형태의 온전한 형태로 사용한다.

 

메소드 호출결과, 콘솔창은 아래와 같이 된다.