yooniiverse
개발 블로그
yooniiverse
전체 방문자
오늘
어제
  • 분류 전체보기
    • 운영체제
    • 네트워크
    • ~2023.02
      • 외부교육
      • 대외활동
      • 스터디
      • 동아리
      • TIL
      • IT지식
      • 기타
      • 트러블 슈팅
      • 프로그래밍
      • Python
      • Java
      • JS
      • DB(SQL)
      • JSP
      • Spring
      • 기술면접
      • 자바
      • 코딩테스트
      • 자료구조
      • 알고리즘
      • 백준 문제풀이
      • 인공지능
      • 머신러닝
      • 프로젝트
      • 안드로이드 앱개발
      • 웹개발
      • 웹 서비스
      • 웹퍼블리싱
      • Node.js 백엔드 개발
      • CS
      • 1일 1CS지식
      • 운영체제
      • 네트워크
      • 데이터베이스
      • 정보처리기사
      • 도서 리뷰
      • 개발 관련 도서
      • 기타 도서

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
yooniiverse

개발 블로그

~2023.02/JS

자바스크립트에서 this와 Arrow Function

2022. 6. 2. 14:45
const getFullName = () => '${this.firstName} ${this.lastName}';

const user = {
  firstName: 'Adam',
  lastName: 'Smith',
  getFullName: getFullName,
};

console.log(user.getFullName());
  • Arrow Function에서 this의 값은 일반함수처럼 호출한 대상에 따라 상대적으로 변하지 않고, Arrow Function이 선언되기 직전에 유효한 this값과 똑같은 값을 가지고서 동작하게 된다.
  • getFullName이 선언될 때 this의 값은 전역 객체인 window 객체가 된다.
  • getFullName 함수를 실행하려고 하면, window 객체의 firstName과 lastName 프로퍼티에 접근하려고 할 것이다.
  • 그러므로 위의 코드를 실행하면 undefined undefined가 출력된다.
  • 만약 메소드를 만들 때 this 메소드를 호출한 객체를 가리키고 싶다면 Arrow Function 보다는 일반함수를 활용해야 한다.
  • this를 활용한 메소드를 다른 여러 객체에 활용한다고 해서 반드시 전역 scope를 가지는 함수를 만들 필요는 없다.
  • 일반함수로 this를 활용한 메소드를 객체 내부에서 선언하고, 다른 객체에서 그 메소드를 참조하더라도 this는 항상 그 메소드를 호출한 객체를 가리키게 된다.

'~2023.02 > JS' 카테고리의 다른 글

자바스크립트에서 세미콜론(;) 사용  (0) 2022.06.02
자바스크립트 동작원리  (0) 2022.06.02
값으로서의 함수  (0) 2022.06.01
AND와 OR 연산 방식  (0) 2022.06.01
스타일 다루기  (0) 2022.06.01
    '~2023.02/JS' 카테고리의 다른 글
    • 자바스크립트에서 세미콜론(;) 사용
    • 자바스크립트 동작원리
    • 값으로서의 함수
    • AND와 OR 연산 방식
    yooniiverse
    yooniiverse

    티스토리툴바